我需要創建幾個對象並將它們放入列表中(爲此我使用std :: vector)。此外,我需要列表項指向對象的地址,以便我對對象所做的更改也反映在列表中。 但事情是,列表中的每個項目都指向循環中創建的最後一個對象。將對象的地址添加到循環中的向量中
for(int i=0;i<50;i++){
for(int j=0;j<50;j++){
Grass g1;
g1.position.x = i;
g1.position.y = j;
grassList.push_back(&g1);
}
}
在列表中應該是草對象的屬性..
[0,0]
[0,1]
[0,2]
.
.
.
.
[49,49]
但它出來是..
[49,49]
[49,49]
[49,49]
[49,49]
.
.
.
[49,49]
要麼通過推值,或者創建一個新的草對象(如在使用「新」運算符)。 g1是在堆棧上創建的,並且基本上是您一遍又一遍地使用其地址的相同對象。 – OldProgrammer