#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'
. 这是什么意思,为什么?
我知道问题显然是基类有一个从未定义过的非纯虚函数,但是如果我从不调用它,为什么这会打扰链接器呢?为什么它与我声明但未定义的任何其他函数不同,如果我从不调用它我很好?
我对细节很感兴趣。