内容均出自《C++ primer plus》,本文仅为个人理解总结所用。
若有不明欢迎站内私信交流。
若发现文中错漏之处,期待不吝赐教站内私信。
(一)函数重载(多态)
先上定义:
C++ Premer Plus (page276)
- 函数多态是C++在C语言的基础上新增的功能。
- 术语"多态":指的是有多种形式。
- 术语"函数重载":指的是可以有多个同名函数,因此对名称进行了重载。
- 两个术语是同一回事,但通常使用函数重载。
- 函数多态(函数重载)让程序能够使用多个同名的函数。
实例理解:
同名函数,程序如何区分需要使用哪个?
——根据特征标
- 函数重载的关键是函数的参数列表——也称为特征标
- 若参数数目/参数类型不同,则特征标也不同。
- tips: const限定符、 &引用符不为特征标
//比如本组函数
void print(const char* str, int width); //#1
void print(double d, int width); //#2
void print(long l, int width); //#3
void print(int i, int width); //#4
void print(const char *str); //#5
使用print( )函数时,编译器将根据所采用的的用法使用有相应特征标的原型:
printf("Pancakes", 15); //自动匹配#1
printf("Syrup"); //自动匹配#5
printf(1999.0, 10); //自动匹配#2
printf(1999, 12); //自动匹配#4