char &func(const char *str, int len = 1);
有默认值得参数就是默认参数,该函数被调用而不传递默认参数的对应实参,则编译器认定其值为默认值,特别重要的一点是其中一个参数有默认值,则其右边的所有参数都必须有!
char &func(const char *str, int len = 1, int rlen); //这是错误的
默认参数应用实例
#include <iostream>
using namespace std;
const int size = 80;
char *left(const char *str, int n = 1);
int main()
{
char sample[size];
cout << "enter string:
";
cin.get(sample,size);
char *ptr = left(sample, 4);
cout << ptr << endl;
delete [] ptr;
ptr = left(sample);
cout << ptr << endl;
delete [] ptr;
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++] = '