class A {
public:
A() {
}
virtual ~A() {
}
virtual void f();
};
int main() {
A* a = new A();
return 0;
}
/usr/bin/ld: /tmp/ccc31LMa.o: warning: relocation agai
只有声明没有定义的虚函数类也无法实例化 ndefined reference to `vtable 以及与纯虚函数区别,虚析构函数也是一样的需要定义
最新推荐文章于 2023-04-13 16:12:20 发布
本文探讨了只有声明没有定义的虚函数导致的`undefined reference to `vtable`链接错误,指出此类类无法实例化的原理与包含纯虚函数的情况相似。即使进行继承,问题依然存在。虚函数必须实现,否则会出现链接问题,而将虚函数声明为纯虚函数则允许类实例化。同样,虚析构函数也需要定义,否则会遇到相同的问题。
摘要由CSDN通过智能技术生成