我的程序有一些关于未使用变量的编译器警告,我想知道解决这个问题的适当方法。
我有一个由基类继承的函数,在父函数的实现中,我没有使用子函数所需的所有参数;当然这会导致警告,因为我不是一位经验丰富的程序员,所以我不确定解决这些警告的最佳方法是什么。
所以最小的例子是:
在标题中:
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;
}
答案 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;
}