C ++:写一个空函数体的最干净的练习

时间:2016-09-15 05:08:54

标签: c++

我想在C ++中编写一个带有空体的虚函数。

这些是我所知道的方式:

virtual void f(int a, int b, int c) { }

如果我这样写,编译器会发出关于未使用参数的警告。我不想全局压制这种警告,因为它在其他情况下仍然有用。

这个问题How do I best silence a warning about unused variables?讨论了如何抑制未使用的参数,但这些解决方案有如下所述的缺点:

virtual void f(int a, int b, int c) { (void) a; (void) b; (void) c; }

如果我这样写,我必须写出尽可能多的(void)作为参数的数量。如果有50个函数,并且每个函数都有10个参数,我必须手动输入500 (void),这很乏味。另外,每次添加或删除形式参数时,都需要添加或删除相应的(void)语句。与“不要重复自己”相矛盾:每次一次更改发生时,必须修改两个位置。

virtual void f(int /*a*/, int /*b*/, int /*c*/) { }

如果我这样写,当我写一个函数调用时,IDE将无法提示正式参数的名称而只是类型;当我在派生类中重写此函数时,IDE也无法提供带有这些参数名称的声明。

virtual void f(int a, int b, int c) = 0;

如果我这样写,派生类必须覆盖这个函数,这不是我想要的。

我希望如果有这样的事情:

virtual void f(int a, int b, int c) = default;

是否有这样的语言功能,最佳做法或解决方法?

谢谢!

0 个答案:

没有答案