1
class RadioManager {

    typedef MtmMap<double, Stations*> RadioMap;
    typedef RadioMap::Pair RadioPair;
    typedef RadioMap::iterator RadioMapIter;

    RadioMap radio;
    std::vector<Song> all_songs;
    unsigned long radio_clock;

    int findSong(const string& author, const string& name);
    void checkTime();
    void updateCurrent();

public:

~RadioManager();

    RadioManager() :
            radio(new Stations()), all_songs(), radio_clock(0) {
    }

Staions 是一个具有继承类的基类......

我在构造函数中遇到错误...有人可以帮我构建一个吗?请注意, Radio 是一张地图,其值为 class

4

1 回答 1

0

RadioMapmap,它不是指针,你不需要调用new来分配 Station,它们甚至不是同一类型。

std::map(或std::multimap)和std::vector具有默认构造函数,它们将在 RadioManager 中调用

尝试:

RadioManager() 
: radio(radio_clock(0)) 
{
}

最好在 STL 容器中使用智能指针而不是原始指针,智能指针会自动为您释放内存。

typedef MtmMap<double, std::unique_ptr<Stations>> RadioMap;
于 2013-01-31T00:03:31.053 回答