我刚刚意识到我将代码简化得太多了,它并没有反映我真正的问题。我很抱歉没有更具体。我实际上尝试做的是以下内容:
在线演示:
#include<iostream>
class A
{
public:
A();
virtual void f()= 0;
void g();
};
A::A()
{
g();
}
void A::g()
{
f();
}
class B : public A
{
public:
B() {};
void f() {};
};
int main()
{
B b;
return 0;
}
我猜程序调用了纯虚函数A::f
,因为B
在调用构造函数时尚未创建。
这是正确的,我该如何克服这个问题?
请原谅我之前给出了过于简单的问题。