c ++抽象类,带有一些实现

Bg1*_*987 5 c++ abstract-class

我想在c ++中创建一个带有单个的抽象类,但是有一些默认实现.因此,每个继承它的类都将具有默认行为,但您无法创建基类的实例.但如果我将foo标记为纯虚拟,我无法为其添加实现.

class Base
{
public:
    virtual void foo() =0; //Now I can't add foo implementation
};
Run Code Online (Sandbox Code Playgroud)

我的解决方案是不要将它作为纯虚拟,而只是隐藏构造函数.我想知道是否有可能将该类标记为纯,但仍然有一些实现?

Bjö*_*lex 9

可以将实现添加到纯虚函数.派生的类可以通过显式调用base-class-method来使用默认实现.