gpt4 book ai didi

c++ - 链接器错误 : missing vtable

转载 作者:行者123 更新时间:2023-11-27 23:22:18 24 4
gpt4 key购买 nike

我在 xcode 中遇到链接器错误,我很难理解和找到问题所在。这是我得到的错误:

enter image description here


我的Instrument 类 如下所示:

class Instrument {

private:

public:

virtual float getSample(Note &note);
Instrument(){}

};

它由我的 Synth 类 实现:

class Synth : public Instrument{

private:
Volume volume;
public:
Synth(){}
void setVolume(float aVolume);
virtual float getSample(Note &note);
};

我正在使用 Instrument 作为我的 Track 类中的成员:

class Track {
public:
bool muted;
Instrument instrument;
Track(){
this->muted = false;
}
};

任何想法是什么导致了这个问题?我还有一个问题:如果有一个 Track 对象,将它的 instrument 成员初始化为 Synth 的最佳方法是什么?这行得通吗?

Track track;
track.instrument = Synth();

最佳答案

正如注释中的错误所说,您需要提供我猜想缺少的虚函数的定义:Instrument::getSample(Note &note);

但我猜你需要纯虚函数,让它成为:

class Instrument {
//...
public:
virtual float getSample(Note &note) =0;
Instrument(){}
};

如果不是这种情况,请发布更多代码并在不同的编译器上检查您的代码,可能是您的编译器有问题

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

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