c++中 函数的默认参数 学习

    默认参数指的是当函数调用中省略了实参时     自动使用一个默认的值。

对于带参数列表的函数,必须从右向左添加默认值  (就是说她的右边肯定是先有默认的值)

fun(int ,1,2,3) 不能 fun(int,1,int,int)等情况!  够清楚了吧!!

 

1 char* left(const char* str, int n=1);
2 int main()
3 {
4 }
5 
6 char* left(const char* str, int n = 1)//错误
7 {
8 }

 

1 声明时带有默认参数,实现时没有默认值 (ok)

2 实现时带有默认参数,声明时没有默认值(ok)

1 char* left(const char* str, int n=1);
2 int main()
3 {
4 }
5 
6 char* left(const char* str, int n )
7 {
8 
9 }
1 char* left(const char* str, int n);
2 int main()
3 {
4 
5 }
6 char* left(const char* str, int n = 1)
7 {
8 
9 }

 

使用默认参数来替代函数重载:

如果一组重载函数(可能带有默认参数)允许相同实參个数的调用,将会引起调用的二义性。 

1 void func(int); //重载函数之一
2 void func(intint=4); //重载函数之二,带有默认参数
3 void func(int=3int=4); //重载函数之三,带有默认参数
4 
5 func(7); //error: 到底调用3个重载函数中的哪个?
6 func(20,30) //error:到底调用后面2个重载函数的哪个?

小心小心!!!!!!!!!!!!!

 

 

  

posted on 2017-10-05 10:47  zhangkele  阅读(221)  评论(0编辑  收藏  举报

导航