构造函数具有类值的地图

时间:2013-01-30 23:56:50

标签: c++ class map vector constructor

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

1 个答案:

答案 0 :(得分: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;