我有一個循環,它增加了指向矢量的指針;使用矢量指針指向對象的指針C++
vector<Material *> materials;
和我的材料類有4個屬性:
int id;
float *ambiance;
float *diffuse;
在我的循環
:
while(input_read_from_the_file !=NULL){
int id=someval1;
float x[2]={someval2,someval3};
float y[2]={someval4,someval5};
materials.push_back(new Material(id,x,y));
}
當我看到我的材料載體在for循環中我看到,ID是不同的,但氛圍和漫反射對於所有元素都是一樣的。這可能是因爲它在while循環中使用了相同的指針,但是我找不到替代方法。在這裏最好的方法是什麼? 謝謝
你的指針指向是本地的,而循環變量。這是未定義的行爲。爲什麼不存儲數組或向量而不是指針? – juanchopanza
我應該在我的班級中使用數組而不是指針嗎? 而不是浮動*氛圍;浮動氛圍[3]; – Emrah
@Emrah是否有一個合理的* *已知的*固定數量的你會瘋了*不*將它們存儲爲一個聲明的數組。如果是這種情況,則不需要動態存儲它們。如果有這種需求,請改用矢量。 – WhozCraig