假设我有一个类Box
class Box{
...
};我需要创建基于用户输入的框。我试着做一个蓝图对象
方法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个Box对象的向量。但随后我尝试执行以下操作,以便每次使用构造函数创建一个对象时都可以设置值。
方法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是Public,而不是Private。
我看到了this帖子,用户patrick解释了如何使用很多名为盒子工厂的类来动态创建对象,我不明白你必须让它变得如此复杂,而不是使用我在这篇文章中尝试并为我工作的两种方法之一。
我的问题是:
我正在制作的最初的程序有一个名为 AI 的类,我希望根据用户想要使用的AI数量来创建这个类的更多对象。
发布于 2017-04-15 12:46:51
对象工厂是时间的主要部分,用来制作与用户输入不同的对象。
想象一下你有一个名叫动物的班级。你有三个孩子班:猫,狗和鱼。正如我所说的,这些类都是从动物那里继承的。您希望创建一个猫、狗或鱼,以依赖用户输入。在本例中,对象工厂非常有用;在您的示例中,这并不是因为您总是实例化Box对象
你这样做是很好的。在那个时候,你不需要更复杂的东西,比如对象工厂。
https://stackoverflow.com/questions/43426082
复制相似问题