我有一個類PokemonCollection,它有一個接受一對的私人串列。
現在我要做的是,當我PokemonCollection在main()函式中創建該類的物件“集合”時,我將一些對傳遞給建構式,并且在建構式中我必須初始化類的私有串列。
PokemonCollection collection({pair<string, size_t>("Pikachu", 25),
pair<string, size_t> ("Raticate", 20), pair<string, size_t>("Raticate", 20),
pair<string, size_t>("Bulbasaur", 1), pair<string, size_t>("Pikachu", 25),
pair<string, size_t>("Diglett", 50)});
這讓我很困惑,有人可以幫助我,因為我是初學者,我也必須列印那個私人名單。
collection.print();
其中 print 是我班級的公共職能。
類定義:
class PokemonCollection{
public:
void print();
private:
list<pair<string, size_t>> pokemons_;
};
其中“size_t”是口袋妖怪名稱的識別符號。我在建構式的分配中有這個提示:
/* constructor
* initializes the collection to by copying the parameter
*/
PokemonCollection(const std::list<std::pair<std::string, size_t>>& pokemons){}
在此處輸入影像描述
uj5u.com熱心網友回復:
如何通過從建構式復制引數來初始化集合(串列)?
就像您在成員初始化器串列中初始化任何其他資料成員一樣:
class PokemonCollection{
public:
void print();
PokemonCollection(const std::list<std::pair<std::string,
//---------------------------------------------------VVVVVVVVVVVVVVV--->use member initializer list
size_t>>& pokemons): myList(pokemons)
{
}
private:
list<pair<string, size_t>> myList;
};
演示
請注意,在您給定的示例中,您沒有為串列資料成員提供任何名稱,因此在我的示例中,我將其命名為myList。然后使用成員初始化器串列myList命名的函式引數進行初始化。pokemons
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/513848.html
標籤:C 列表班级容器
