默认参数:
在C++中,函数在定义或声明时,给参数设定默认值,该默认值在函数具体调用的过程中如果实参空缺,即启用默认值,完成函数运算
默认值设置规则:
1. 有声明有定义默认值设置在声明(只写一次)程序至上向下运行,函数声明处于定义上方,最先运行,默认值设定一次,避免重复设置
2. 仅有函数定义默认值设置在定义无函数声明,便无需担心重复设置默认值
3. 函数中默认值从右至左设置函数调用中,实参从左到右顺序调用,默认值为实参空缺时填补,则最先填补右边的空缺,所以默认值由右至左设置,假设最先设置默认值在左边,当函数实参调用时则最先覆盖左侧默认值,当实参空缺时,默认值未起到填补的作用,函数依然无法运行
函数重载:
函数重载(函数多态),多同名函数的使用
重载要求:
函数的参数列表(特征标)不同:包含参数数目不同,参数类型不同
错误重载:
int add(int x,int y);
double add(int x,int y);
1. 运用函数返回值错误区分重载函数:
函数调用时,无法因返回值的不同选择重载函数
2. 引用参数错误区分重载函数:
int add(int x,int y);
int add(int& x,int& y);
参数的引用实际上和实参类型一致,类型引用和类型本身视为同一个参数,无法区分重载函数
实质:
函数重载实质上是C++在行过程中,将函数名、参数类型、返回值的信息转译为另一暗语标记,遇到同名的函数时,因参数列表不同而产生暗语标记不同进行区分,在函数调用时,根据调用的实参类型、个数,程序自动选择最佳匹配函数运行(参数类型及数量一致、const限定,*除了引用以外的所有区别*)。
函数匹配选择:
有const选有const参数的函数,没有const选没有const参数的函数
内联函数
C++将程序中功能简单、规模小、使用频繁的函数,将其设置为内联函数,即如果运行到内联函数时,不再系统调用函数,而是直接在函数定义处用内联函数程序代码替换对它的调用。
内联函数格式:
函数声明或定义时,将 inline 关键字加在函数的返回类型前面
eg:inline int add(int a,int b);
引用场景:
- 类内函数,自动设置为内联函数,相反类外为普通函数;
- 功能简单、规模小、使用频繁的函数
注:如若将功能复杂,规模大的函数设置成内联函数,亦会失败,用户设置内联函数是建议设置,真正实施的是系统的选择