【发布时间】:2015-04-10 06:44:03
【问题描述】:
#include <iostream>
using namespace std;
class A{
public:
int a;
virtual void fun();
};
int main(){A obj;}
得到对“vtable for A”的错误未定义引用。 我想知道为什么没有实现虚函数会出现这种错误。
【问题讨论】:
-
您是否将虚函数与纯虚函数混淆了?
-
因为这就是语言的工作方式。你想做什么?
-
@FrédéricHamidi 即使
fun是一个纯虚函数,代码也会因为无法实例化抽象类而无法编译。 -
如果你问为什么这是一个错误,那是因为语言要求所有非纯虚析构函数都有定义。如果您问为什么会收到该特定错误消息,请参阅stackoverflow.com/questions/1693634
标签: c++ virtual-functions