匿名形参
c++允许形参匿名,匿名形参主要用来占位,待以后完善,因为形参匿名,因此函数体中无法访问
void feed(int, int)
{
cout << "feed(int, int)" << endl;
}
void call_feed()
{
//feed();
//feed(5);
feed(5, 8);
}
默认实参
- 默认实参本质就是在函数调用时,从函数声明(引用性声明和定义性声明)中获取默认实参值代替当前函数调用中相应位置实参的缺失,显然编译期代替
- 可为一个或多个形参指定默认实参,如果一个形参具有默认实参,那么此形参后所有形参(如果还有)都必须具有默认实参,因为函数调用时实参按位置解析,默认实参只能用来代替函数调用时缺少的尾部实参,默认实参可以是任何类型表达式(包括常量,常量是特殊表达式),只要表达式值类型与形参类型兼容,即表达式值类型允许隐式转换为形参类型
- 在函数声明(引用性声明和定义性声明)中指定默认实参,同一source file中,每个形参至多只能指定一次默认实参,否则编译器不知道使用哪个函数声明中默认实参,编译error,不同source file中同一函数声明可指定不同默认实参,不会引起冲突,因为编译器编译单元是source file,而且默认实参是编译器代替
- 通常在函数声明(引用型声明)中指定默认实参,在函数定义中不指定,因为函数作为接口常以header file和lib的形式分发给使用者,函数声明放在header file,使用者可知道默认实参值,函