1

クラスへのポインタのベクトルのコンストラクタを構築する必要があります...

私のクラスは:

class Song {

    string song_name;

    string auther_name;

    int popularity;

    SongStructure song_format;

    int song_length;

    int lengths[size];

    bool first_condition_true();

    bool second_condition_true(int index);

    }

};

私のベクトルは:

vector<Song*> play_list;
4

2 に答える 2

2

新しい標準 C++11 では / 0x 初期化リストが導入されました。

Song-Pointers のベクトルと追加の Info を含む SongBook クラスを作成したかったとします。それらは次のように使用できます。

クラスファイル:

class SongBook {
    vector<Song*> songlist;
    string name;

    // Constructor
    SongBook(std::initializer_list<Song*> songs) : songlist(songs) {}
}

たとえば、メインからこのように呼び出します

SongBook book({new Song(...), new Song(...), new Song(...)});
于 2013-02-01T14:09:31.453 に答える
0

ベクターには、使用できる作業コンストラクターがあります。(ポインターの場所を作成します)。あなたが求めているのは、おそらくポインターがいくつかの有効なを指すようにする方法ですSong。いくつかのループでそれを行う必要があります(おそらくSTLの「ループ」)。しかし、あなたの歌は合法的にコピー可能であるため、おそらくそれは必要ありません!?. 使用できますvector<Song>

于 2013-02-01T14:10:53.993 に答える