class a //my base class
{
public:
a()
{
foo();
}
virtual void foo() = 0;
};
class b : public a
{
public:
void foo()
{
}
};
int main()
{
b obj; //ERROR: undefined reference to a::foo()
}
エラーが発生するのはなぜですか?純粋仮想 foo が定義されています。コードを機能させるには、コードの何を変更する必要がありますか? 基本クラスの純粋仮想メソッドをそのコンストラクターで呼び出す必要があります。