C++父类调用子虚函数

Wha*_*awg 12 c++ virtual inheritance

我想要一个纯虚拟父类来调用函数的子实现,如下所示:

class parent
{
  public:
    void Read() { //read stuff }
    virtual void Process() = 0;
    parent() 
    {
        Read();
        Process();
    }
}
class child : public parent
{
  public:
    virtual void Process() { //process stuff }
    child() : parent() { }
}

int main()
{
   child c;
}
Run Code Online (Sandbox Code Playgroud)

这应该工作,但我得到一个未链接的错误:/这是使用VC++ 2k3

或者不应该工作,我错了吗?

Dam*_*kić 19

以下文章的标题说明了一切:在构造或销毁期间永远不要调用虚函数.

  • 正确,但有点短.你至少应该复制结论:"要记住的事情:不要在构造或破坏期间调用虚函数,因为这样的调用永远不会转到比当前正在执行的构造函数或析构函数更多的派生类." (2认同)