修复未使用的形式参数警告而不进行抽象类

jma*_*erx 3 c++

我有一个基类,它有虚函数.问题在于,允许对基数进行实例化,但这意味着它的所有函数都需要定义.这会导致编译器警告我未使用的参数.如果不制作纯虚函数并使其成为抽象类,我能做些什么来正确摆脱这些警告?

例:

class Foo {
public:
virtual void bar(int x) {} //unused formal parameter int x
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Oli*_*rth 14

通常的解决方案是:

virtual void bar(int x) { (void)x; }
Run Code Online (Sandbox Code Playgroud)

要么:

virtual void bar(int) {}
Run Code Online (Sandbox Code Playgroud)

这可以防止编译器吵架.注意,该技术不限于虚拟成员函数; 它应该适用于您不打算使用一个或多个参数的任何函数.

在一个无关的说明; 具有空成员函数定义的可实例化基类听起来不是一个好主意; 你确定你不会因为抽象而变得更好吗?