C ++使用多态修复未使用的参数警告

时间:2013-11-28 21:06:53

标签: c++ polymorphism unused-variables

我的程序有一些关于未使用变量的编译器警告,我想知道解决这个问题的适当方法。

我有一个由基类继承的函数,在父函数的实现中,我没有使用子函数所需的所有参数;当然这会导致警告,因为我不是一位经验丰富的程序员,所以我不确定解决这些警告的最佳方法是什么。

所以最小的例子是:

在标题中:

    class car{
     public:
       virtual void init(int color, int size)
     private:
       int size;
    }
    class sportscar : public car{
     public:
       virtual void init(int color, int size)
     private:
       int color;
       int size;
    }

在源文件中:

    void car::init(int color, int size){
      this->size = size;
    }
    void sportscar::init(int color, int size){
      this->color = color;
      this->size = size;
    }

3 个答案:

答案 0 :(得分:6)

您需要做的就是不在实现中命名它们:

void car::init(int /* color */, int size){
    this->size = size;
}

答案 1 :(得分:1)

您可以省略函数参数的名称。

void car::init(int, int size) {
  this->size = size;
}

这有时是不可取的,因为有些工具使用签名来提取文档,并且您可以内联定义函数。然后你可以使用演员。

struct car {
  void init(int color, int size) {
    (void)color; // prevent warning
    this->size = size;
  }
};

同时,请记住C ++类通常不需要init函数,因为这是构造函数的用途。

答案 2 :(得分:0)

无需命名函数参数:如果不使用参数,只需将其名称保留为:

void car::init(int, int size) {
    this->size = size;
}