【问题标题】:virtual function in c++ need an implemetation without implemetation its giving an errorc ++中的虚函数需要一个没有实现的实现会给出错误
【发布时间】: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


【解决方案1】:

那是因为你声明了函数(无论是普通的成员函数还是虚函数)但是你没有在任何地方定义它..!!

你可以试试这个方法,这样就可以正常编译运行了!

class A{ public:int a; virtual void fun(){}; };

int main(){ A obj; }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2012-03-21
    • 2011-09-02
    • 1970-01-01
    • 2017-07-09
    相关资源
    最近更新 更多