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) {
    }

Stations はクラスを継承した基本クラスです...

コンストラクターでエラーが発生します...構築を手伝ってくれる人はいますか? ラジオはその値がクラスであるマップであることに注意してください

4

1 に答える 1

0

RadioMapマップです。ポインタではありませんnew。ステーションを割り当てるために呼び出す必要はありません。同じタイプでもありません。

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 に答える