c++ - 一种简洁的说法 "this class overrides all necessary methods to be non-abstract"

标签 c++ subclass virtual-functions

我有一个基类 Base 有很多纯虚方法,我想定义一些 class Foo: public Base 和类似的形式的类class Barclass Baz 等 - 所有这些都应该是非虚拟的,并且所有这些都在 .cpp 文件中实现它们的虚拟方法,而不是在类定义中内联。目前,在这些类的每一个定义中,我都声明了 void method1() overridevoid method2() override 等等广告令人作呕 - 我必须复制粘贴这个东西和我继承 class Base 的次数一样多。

是否有另一种更简洁的说法“此类重写了所有必要的非抽象方法”?

注意事项:

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

最佳答案

没有。

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

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

如果这是个问题,则表明您的接口(interface)有太多成员函数。

不要忘记 Single Responsibility Principle !

关于c++ - 一种简洁的说法 "this class overrides all necessary methods to be non-abstract",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35386461/

相关文章:

c++ - 从字符串中给定结束索引的字符串复制子字符串

c++ - 为接口(interface)实现通用函数

ios - 子类化 NSURLConnection 给出错误 : unrecognized selector sent to instance

Swift 4 泛型,引用自身

swift - 将函数参数参数限制为 Swift 中的基类

c++ - OOP C++、虚函数和新运算符

c++ - 为什么编译代码 "foo::foo::foo::foob"?

c++ - 有效的字符数组(这是一个有效的字符串)

c++ - 访问者和模板化虚拟方法

c# - 虚方法和抽象方法的区别