1 默认参数
默认参数是指当函数调用中省略了实参,而自动使用的值。必须通过函数原型来设置默认值,如1)处。默认参数值就是初始化值,所以原型将n初始化为1,如果传递省略参数n,则它的值为1;否则传递的值将覆盖1。
注意:1)对于带参数列表的函数,必须从右向左添加默认值;2)实参按从左向右的顺序依次被赋给相应的形参;3)只有原型指定了默认值,函数定义与没有默认参数时完全相同。通过使用默认参数,可以减少要定义的析构函数、方法以及方法重载的数量。
char * left(const char* str, int n = 1); // 1)
int main()
{
left(sample);
left(sample,4);
}
char * left(const char* str, int n)
{
...
}
2 函数重载
默认参数能够让不同数目的参数调用同一个函数,而函数多态(函数重载)能够使用多个同名函数。函数重载的关键是函数的参数列表——函数特征标。如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则他们的特征标相同,而变量名是无关紧要的。若定义特征标不同,名称相同的函数,则称为函数重载。仅当函数基本上执行相同的任务,但使用不同形式的数据时,才应采用函数重载。
没有匹配的函数原型并不会自动停止使用其中的函数,因为c++尝试使用标准类型转换强制进行匹配。如1)处&#