【发布时间】:2014-10-15 14:34:51
【问题描述】:
我很确定我在 WaterHeater 及其派生类中定义了每个函数,所以任何人都可以告诉我为什么会出现此链接错误?在此先谢谢大家,我已经有一段时间没有找到任何解决方案了。
这是我在编译控制台项目时遇到的错误:
heater.cpp:(.text$_ZN11WaterHeaterC2ERKS_[_ZN11WaterHeaterC2ERKS_]+0x13): undefined reference to `vtable for WaterHeater'
[Error] Id returned exit 1 status
recipe for target 'LabProject4.exe' failed
这是我的代码:
加热器.h
class WaterHeater{
public:
void print() const;
virtual WaterHeater* clone() const;
virtual float installedPrice( const bool _hookUp, const bool _newVent) const = 0;
float getPrice() const{ return d_price; };
};
class Tankless: public WaterHeater{
public:
Tankless( ...){} const;
};
class StorageTank: public WaterHeater{
public:
StorageTank( ...){} const;
};
float Tankless::installedPrice( const bool _hookUp, const bool _newVent ) const{...}
WaterHeater* Tankless::clone() const{...}
float StorageTank::installedPrice( const bool _hookUp, const bool _newVent ) const{...}
WaterHeater* StorageTank::clone() const{...}
void WaterHeater::print() const{...}
【问题讨论】:
-
请缩小范围。
标签: c++ compiler-errors linker virtual linker-errors