今天当自己要写这种函数时候,才发现这个默认参数的知识不懂啊,于是百度了下。
默认参数就是给参数默认赋值一个常量,这个参数必须是常量,而且调用函数的时候这个参数可写、可不写,也叫缺省参数。
声明
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) //【正确且优秀】 (搞了半天原来也只能少写个赋值部分,就不能让我再少敲点嘛- -!)
到底写在声明还是定义?
都可以,但只能二选一,同时在声明和定义给参数赋值会报错!
类的成员函数的默认参数不可以写在右边赋值,所以类的成员函数只能写在定义里赋值!
非类的成员函数,可写在声明赋值,也可写在定义里赋值。