函数的默认参数
默认参数是指当函数调用中省略了实参时自动使用的一个值。例如,如果将void wow(int n)设置成n有默认值为1,则函数调用wow()相当于wow(1)。
如何设置默认值
必须通过函数原型。由于编译器通过查看原型来了解函数所使用的参数数目,因此函数原型也必须将可能的默认参数告知程序。方法是将值赋给原型中的参数
Notes:—————————————————————————————————————————
1.对于带参数列表的函数,必须从右向左添加默认值。也就是说,如果想给某个参数设置默认值,则必须为它右边所有的参数设置默认值
√ int harpo(int n,int m=4,int j=5)
√ int groucho(int k=1,int m=2,int n=3)
× int chico(int n,int m=5,int j)
2.实参按从左到右的顺序依次被赋给相应的形参,而不能跳过任何参数
3.只有原型指定了默认值。函数定义与没有默认参数时完全相同
4.使用默认参数,可以减少要定义的析构函数、方法以及方法重载的数量
#include <iostream>
using namespace std;
const int ArSize=50;
char *left(const char *str,int n=3);
int main()
{
char sample[ArSize];
cout << "Enter a string:\n";
cin.get(sample,ArSize);
char *ps=left(sample,4);
cout << ps << endl;
delete [] ps;
ps=left(sample);
cout << ps << endl;
delete [] ps;
return 0;
}
char *left(const char *str,int n)
{
if(n<0)
n=0;
char *p=new char[n+1];
int i;
for(i=0; i<n&&str[i]; i++)
p[i]=str[i];
while(i<=n)
p[i++]='\0';
return p;
}
Enter a string:
forthcoming
fort
for