例如:
class apple
{
public:
string name;
apple::apple(string name) : name(name)
{
}
};
如果我想制作一堆列表,每个列表都有苹果的类型,我想我可以做类似std::list<apple> empire("empire"), macintosh("macintosh")
. 基本上,我想为list<T>
创建列表时声明的类 T 的构造函数传递参数。抱歉,如果我没有正确解释这一点,如果您有这种能力,请随时编辑我的问题。
谢谢
编辑这个问题似乎令人困惑,这可能是因为我举了一个不好的例子。我需要重新设计我的班级。在这个例子之后,虽然我想要的是一个包含所有帝国苹果的列表,并且该列表中的每个苹果都有一个指定的帝国类型,以及一个包含所有 macintosh 苹果的列表,并且该列表中的每个苹果都有一个指定的 macintosh 类型。
因此,为了澄清一些或混淆一些,我们开始吧。
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;
}
因此,如您所见,存储品种比每次存储更容易;我的班级显然需要重新设计,但这并没有降低答案的有效性。每个人都感谢您的帮助