我想在c ++中创建一个带有单个的抽象类,但是有一些默认实现。 因此,每个继承它的类都将具有默认行为,但您无法创建基类的实例。 但如果我将foo标记为纯虚拟,我无法为其添加实现。
class Base
{
public:
virtual void foo() =0; //Now I can't add foo implementation
};
我的解决方案是不将它作为纯虚拟,并隐藏构造函数。 我想知道是否有可能将该类标记为纯,但仍有一些实现?
答案 0 :(得分:9)
你can add an implementation to a pure virtual function。派生的类可以通过显式调用base-class-method来使用默认实现。