我剛剛意識到,我簡化了代碼太多,它並沒有反映我真正的問題。我很抱歉沒有更具體。我實際上是嘗試做的是以下幾點:如何從基類函數調用被覆蓋的虛函數?
#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;
}
我猜程序調用自B
A::f
已經在構造函數被調用尚未創建的純虛函數。
這是正確的,我該如何克服這個問題?
請原諒我早些提供過於簡化的問題。
我也在等待迴應。對於我所瞭解的C++,你不能構造一個類實例,其中類仍然有一些未實現的純虛方法。 – Heisenbug
幾乎肯定存在你刪除的代碼中的一個錯誤。 –
-1不是真實代碼 –