C++默认参数(缺省参数)应该写在哪里,声明还是定义里

今天当自己要写这种函数时候,才发现这个默认参数的知识不懂啊,于是百度了下。

默认参数就是给参数默认赋值一个常量,这个参数必须是常量,而且调用函数的时候这个参数可写、可不写,也叫缺省参数。
声明
int Add(int a,int b=11)
定义
int Add(int a,int b=11)
调用
Add(7) ;//可以少敲一个参数,嘎嘎!所以默认参数也就叫【缺省参数】

使用主要规则:
默认参数必须放在参数的最后面,可以是多个,调用时只能从最后一个参数开始进行省略,如果要省略一个参数,必须省略它后面所有的参数。

刚开始以为声明和定义可以这样写:
声明
int Add(int a,int b=11)
定义
int Add(int a) //【错误】
int Add(int a,int b=11) //【正确】
int Add(int a,int b) //【正确且优秀】 (搞了半天原来也只能少写个赋值部分,就不能让我再少敲点嘛- -!)

到底写在声明还是定义?
都可以,但只能二选一,同时在声明和定义给参数赋值会报错!
类的成员函数的默认参数不可以写在右边赋值,所以类的成员函数只能写在定义里赋值!
非类的成员函数,可写在声明赋值,也可写在定义里赋值。


结论:函数的默认参数尽量写在声明里赋值!便于在头文件里查找修改。

定义和声明分开的,只能在声明中设置默认参数(谢谢评论里的哥们提醒,前几天我也发现了)


你可能感兴趣的:(VS2019,C++/VC++,报错/错误,c++,开发语言,算法)