#include <iostream>
using namespace std;
class C
{
public:
virtual void a();
};
class D : public C
{
public:
void a() { cout<<"D::a\n"; }
void b() { cout<<"D::b\n"; }
};
int main()
{
D a;
a.b();
return 0;
}
に関するリンク エラーが発生していundefined reference to 'vtable for C'
ます。これはどういう意味で、なぜですか?
問題は明らかに、基本クラスに定義されていない非純粋仮想関数があることですが、呼び出していない場合、なぜこれがリンカを悩ませるのでしょうか? 私が宣言して定義していない他の関数と違うのはなぜですか? 細かいところに興味があり
ます。