例えば:
class apple
{
public:
string name;
apple::apple(string name) : name(name)
{
}
};
リンゴの種類ごとにたくさんのリストを作りたい場合は、 のようなことができると思いstd::list<apple> empire("empire"), macintosh("macintosh")ました。list<T>基本的に、リストを作成するときに宣言されたクラス T のコンストラクターに引数を渡したいと思います。私がこれを正しく説明していない場合は申し訳ありませんが、その能力があれば私の質問を自由に編集してください。
ありがとう
編集この質問は混乱しているようで、おそらく私が悪い例を挙げたためです。クラスを再設計する必要があります。この例に続いて、私が欲しかったのは、すべて帝国のリンゴであり、そのリスト内の各リンゴには指定されたタイプの帝国があるリストと、すべてマッキントッシュのリンゴであり、そのリスト内の各リンゴには指定されたタイプのマッキントッシュがあるリストです。
したがって、いくつかを明確にするか、さらに混乱させるために、ここに行きます。
class apple
{
public:
string variety_name;
string description;
apple::apple(string variety_name, string description)
: variety_name(variety_name), description(description)
{
}
};
int _tmain(int argc, _TCHAR* argv[])
{
// Vlad from Moscow's answer
std::list<apple> empire(1, apple("empire", "picked yesterday")),
macintosh(1, apple( "macintosh", "picked yesterday"));
// Vaughn Cato's answer
empire.push_back(apple("empire", "picked today"));
macintosh.push_back(apple("macintosh", "picked today"));
for(list<apple>::iterator it=empire.begin(); it != empire.end(); ++it)
{
cout << it->variety_name << " " << it->description << endl;
}
for(list<apple>::iterator it=macintosh.begin(); it != macintosh.end(); ++it)
{
cout << it->variety_name << " " << it->description << endl;
}
return 0;
}
ご覧のとおり、毎回保存するよりも一度保存する方が簡単です。私のクラスは明らかに再設計が必要ですが、それによって回答が有効でなくなることはありません。皆様、ご協力ありがとうございました