也叫做默认参数,当没有参数时会使用参数的默认值。
缺省分为:
- 全缺省
- 半缺省:必须从右往左缺省,并且是连续的
声明和定义不能同时出现缺省
声明和定义如果是分开的话,只能在声明时缺省,因为声明是在头文件中,在函数编译中展开而定义在链接阶段才会进行函数的重链接。
int f(int a = 10, int b = 20)//全缺省
int f(int a, int b = 20)//半缺省
如果声明和定义是在两个文件中,由于编译只在当前文件进行,所以要对函数进行声明,并且缺省必须在声明后,不然编译时还没有链接的其他文件,无法解释缺省,编译器就会报错。
重载函数重载要求
函数参数的个数,类型,顺序有一个不同就可构成重载
int f(int a, double b)
double f(double a, int b)//类型顺序不同
int f(int a, double b)
double f(float a, float b)//类型不同
int f(int a, double b)
double f(double a)//个数不同
重载的底层原理是因为C语言调用函数时直接调用函数的名称,C++调用函数时将函数的参数类型也加入进去。C++会将函数名称以**
_Z+函数名长度+函数名+参数类型
** 这种形式表示,这样在重载时就可以正确的链接到对应的函数。



