删除函数定义(编码标准)中未使用的参数名称。

时间:2013-04-01 07:14:57

标签: c++

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对编译器意味着什么?

2 个答案:

答案 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*/);

但是,您可能希望保持方法的签名不变,以防:

  • 这是一个覆盖在base中声明的方法的方法 类
  • 它是模块公共接口的一部分,您不想这样做 改变

此外,未命名参数的默认值在函数声明中使用时非常有用,稍后在cpp文件中的某处仍然可以为该变量命名。

// Forward declaration
int increment(int number, int =0);

// Somewhere in cpp file:
int increment(int number, int power)
  {
  return pow(number, power);
  }