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

时间:2025-04-17 10:07:07

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

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

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

 char* left(const char* str, int n=);
int main()
{
} char* left(const char* str, int n = )//错误
{
}

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

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

 char* left(const char* str, int n=);
int main()
{
} char* left(const char* str, int n )
{ }
 char* left(const char* str, int n);
int main()
{ }
char* left(const char* str, int n = )
{ }

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

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

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

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