【发布时间】:2016-01-25 15:06:54
【问题描述】:
我将从我们大多数人已经知道的开始:
如果我希望我的类是抽象的,我必须将它的至少一个方法定义为“纯虚拟”,例如,这里的方法someFunction() 被定义为“纯虚拟”,因为它定义为virtual 关键字并分配有0:
class SomeClass {
virtual void someFunction() = 0;
};
我的问题是,当我想要一个 “抽象类” 时,即一个无法实例化的类(如“纯虚拟”类),但我想实现它的所有方法。有什么标准的方法吗?
我目前的解决方法很丑 - 我只是定义了另一个虚拟纯虚拟方法:
class UglyWorkaround {
public:
virtual void doAction1();
virtual void doAction2();
// My ugly workaround for making the class abstract - defining a dummy method
virtual void thisIsADummyMethod() = 0;
};
这很糟糕,因为任何派生的非抽象类都必须实现它
是否有更标准/流行的方式来定义和实现这样的类?
我想澄清一下 - 我不想要另一个丑陋的解决方法 - 我问是否有任何常用的标准方法。目标是使代码对其他程序员可读,因此他们立即明白该类是抽象的
【问题讨论】:
标签: c++ abstract-class pure-virtual