一种简洁的说法,“这个类重写了所有必要的非抽象方法”

时间:2016-02-13 23:14:54

标签: c++ subclass virtual-method

我有一个基类Base,有很多纯虚方法,我想定义一些class Foo: public Base形式的类,class Bar,{{1}等等 - 所有这些都应该是非虚拟的,并且所有这些都在.cpp文件中实现其虚拟方法,而不是在类定义中内联。目前,在这些类的每个定义中,我都声明class Bazvoid method1() override等等。令人作呕 - 我必须多次复制粘贴这些内容,因为我继承了void method2() override。< / p>

是否有另一种更简洁的方式说“这个课程覆盖了所有必要的非抽象方法”?

备注:

  • 我知道我可以做一些基于宏的kludge,我不是那个意思。
  • 基于C ++反射库的解决方案不是优选的,但可能是可以接受的。
  • 如果有帮助,您可以忽略多重继承。

1 个答案:

答案 0 :(得分:2)

没有

您必须说明要覆盖的每个功能。

无法从每个基地自动声明所有可覆盖的函数。

如果这是一个问题,那么这是一个很好的指标,表明你的接口有太多的成员函数。

不要忘记Single Responsibility Principle