我有一個接口稱爲發電機,看起來像這樣:繼承執行不工作
class Generator{
public:
virtual float getSample(Note ¬e)=0;
};
而且我Synth
類實現它,像這樣:
class Synth : public Generator{
public:
virtual float getSample(Note ¬e);
};
float Synth::getSample(Note ¬e){
return 0.5;
}
我想打電話給getSample方法從我的Note類(它有一個生成器成員)
class Note : public Playable{
public:
Generator *generator;
virtual float getValue();
};
float Note::getValue(){
float sample = generator->getSample(*this); // gets stuck here
return sample;
}
當我嘗試運行時,它會卡在上面代碼的標記行中。問題是我沒有得到一個非常明確的錯誤信息。這是我可以看到,一旦它停止:
您確定生成器成員已初始化('EXC_DAB_ACCES'似乎表明不然)?你也應該使用智能指針而不是原始指針。 – stijn