0
class MedicineRepository
{
public:
    virtual Medicine* findById(int medId) ;
    virtual Vector<Medicine*> getAll() ;
    virtual int getNrMeds() ;
    virtual void addMed(Medicine s) ;
    virtual void removeMed(int medId) ;
    virtual ~MedicineRepository() ;
};

undefined reference to vtable for MedicineRepository'是我在这个类中得到的错误。我在另一个模块中继承这个类,在标题中看起来像这样:

class MedRepo : public MedicineRepository{
public: ~MedRepo();
...
};

在cpp中它被定义为:

MedRepo::~MedRepo()
{}

我不明白,我已经在Undefined reference to vtable中寻找有用的东西

4

1 回答 1

0

我认为您发布的错误输出不足以让任何人有意义地确定问题所在 - 您是在包含标头的每个文件中获取它,还是在特定的代码行中获取它?在哪个文件中?您是否为 ~MedicineRepository 实现了主体?

我建议您复制代码,从实现中删除尽可能多的功能,将其剥离到仍然会产生错误的最小定义集,然后如果这不能帮助您解决它,请发布.

于 2013-05-20T06:46:03.073 回答