gpt4 book ai didi

c++ - 对vtable的 undefined reference -C++链接错误

转载 作者:行者123 更新时间:2023-12-02 11:07:41 25 4
gpt4 key购买 nike

我很确定我在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

这是我的代码:

加热器
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{...}

最佳答案

如果您的片段是用于编译程序的实际片段,则问题在于WaterHeater::clone方法没有实现。
这是一种虚拟方法,因此会输出错误。

关于c++ - 对vtable的 undefined reference -C++链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com