比方说,我有一个类箱基于用户输入如何创建对象
class Box{
...
};
,我需要创建一个基于用户的输入框。我试图让一个Blueprint对象
方法1:
int main(){
Box box; //Blueprint
vector<Box> boxes;
for(int i = 0; i < 5; i++) //Creates 5 boxes
boxes.push_back(box);
return 0;
}
这工作。它创建一个包含5个框对象的Vector。 但后来我试着做以下,所以我可以设置值的每次我创建一个对象与构造
方法2:
int main(){
vector<Box> boxes;
for(int i = 0; i < 5; i++){ //Creates 5 boxes
//Lets assume we input x and y every time
Box box(x, y);
boxes.push_back(box);
}
return 0;
}
这似乎是工作得很好,当使用boxes[i].x
它给我的x值,因为它应该。请注意,x和y是公开而不是私人为简化示例。
我看到this后,用户帕特里克解释了如何创建动态使用大量类的命名盒例如工厂对象,我不明白,你必须把它复杂所以不是很多使用的一个我在这篇文章中尝试了两种方法并为我工作。
我的问题是:
- 是我的方法,使基于用户输入
- 如果是的,这是我的方法之一是最好的出了两
- 对象的正确方法是什么从其他岗位
我提出的原程序有一个名为AI类我的方式和帕特里克之间的区别,我想麦e更多这个类的对象基于用户想要对抗多少AI。
这些是不同的方法:第一个复制同一个对象,第二个创建新的,可能不同的对象。而且,只有第二种方法接受用户输入。 – ForceBru
这就是为什么我第一种方法并不“开心”,并创建了第二种方法,但我不是一个好的程序员,而且我创建了他们,我不知道这是否是正确的方式 – Christina
两者都很好。如果您想稍微改进第二个,请考虑使用emplace_back以避免每次都复制对象:'盒子。emplace_back(x,y);' – ehudt