一、函数默认参数的概念
在函数声明时,预先对函数参数进行赋值,该参数即为函数的默认参数,也叫缺省参数。
如下函数func1包含默认参数,若调用函数func1时没有给函数传入实参,则默认实参为10086
void func1(int a = 10086)//函数一 { cout << a << endl; }
二、函数默认参数注意事项
1.设置默认参数按从右向左的顺序
2.若函数的声明和定义分离,应在函数声明中设置默认参数,而在函数定义中无需设置默认参数。即函数的声明和定义不能同时设置默认参数
三、解释为什么当函数声明与定义分离时,默认参数要设置在声明处
假设有函数add,函数声明在头文件add.h中,函数定义在源文件add.cpp中。
编译器在检查语法时,检查到函数的声明即认为该函数存在,不会进一步进行函数定义的检查。因此如果函数声明中没有设置默认参数,那么编译器就认为该函数没有默认参数。所以当进行函数调用时,如果没有传给函数全部实参,编译器不会认为是默认参数,反而认为是语法错误。