gpt4 book ai didi

c++ - 使用继承类作为映射值

转载 作者:行者123 更新时间:2023-11-28 07:47:50 24 4
gpt4 key购买 nike

class StationSongs {
protected:
int original_song;
};

class NewsRadio: public StationSongs {
public:
NewsRadio()
{
current_song = NULL;
currently_empty = 0;
original_song = 0;
start_time_of_song = 0;
next_song_to_play = NULL;
}
};

class CommercialRadio : public StationSongs {
public:
CommercialRadio() {
current_song = NULL;
currently_empty = 0;
original_song = 0;
start_time_of_song = 0;
next_song_to_play = NULL;
}
};

问题:我想使用继承类作为映射值

map 是:

typedef MtmMap<double, StationSongs*> RadioMap;


method{

CommercialRadio new_station();

RadioPair new_pair(stationFrequency,*new_station);

radio.insert(new_pair);
}

我得到这个错误:

Multiple markers at this line

- no matching function for call to 'mtm::MtmMap<double, mtm::StationSongs*>::Pair::Pair(double&,

mtm::CommercialRadio
(&)())'

我该如何解决这个问题???

最佳答案

CommercialRadio new_station(); 声明了一个函数 new_station,它不接受任何参数并返回一个 CommercialRadio。去掉括号。 C++ 语言的这个属性被称为 most vexing parse .

此外,您的基类没有定义虚析构函数几乎肯定是不正确的。

关于c++ - 使用继承类作为映射值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14527146/

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