比方說,我有一個類箱基於用戶輸入如何創建對象
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