Herb Suttter C ++编码标准说,最好在函数中删除未使用的参数名以写入零警告程序。
示例:
int increment(int number, int power=0){
return number++;
}
应该是
int increment(int number, int /*power*/=0){
return number++;
}
如果power
参数存在“未使用的变量警告”。
这适用于程序(没有编译错误),因此新的函数定义将是
int increment(int number, int =0)
那么int=0
对编译器意味着什么?
答案 0 :(得分:4)
未命名的形式参数,默认值等于0.
第一种情况(最受欢迎)是function-declaration
中的用法,类似于
int increment(int, int = 0);
并在definition参数中命名。
int increment(int number, int power)
{
//
}
第二种情况是用于调试目的,或用于某些尚未实现的功能,或用于虚拟功能。
答案 1 :(得分:2)
如果这是一个独立的功能,当然,您可以更改方法的签名注释掉最后一个参数
int increment(int number/*, int power=0*/);
但是,您可能希望保持方法的签名不变,以防:
此外,未命名参数的默认值在函数声明中使用时非常有用,稍后在cpp文件中的某处仍然可以为该变量命名。
// Forward declaration
int increment(int number, int =0);
// Somewhere in cpp file:
int increment(int number, int power)
{
return pow(number, power);
}