我想訪問這些對象列表中包含的對象的成員。訪問對象列表中的非常量成員
我有一個類CApp
與成員std::list<Particle> PList
作爲粒子列表。
一個類Particle
有一個成員void Update()
從我的理解const不能是const,因爲它影響實例(euler集成和東西)。
我想遍歷PList來更新所有的粒子。
一個粒子的構造包括:
Particle::Particle(std::list<Particle>* PList_In) {
PList = PList_In;
PList->push_back(*this);
}
以下稱爲幾次:
Particle(&PList);
因此名單似乎成立。作爲一個側面說明,如果任何人都可以解釋什麼是實際存在的內存(指針,引用)在這一點上,這將是偉大的。
但基本上這個犯錯:
// Update all particles
std::list<Particle>::const_iterator iter;
for (iter = PList.begin(); iter != PList.end(); iter++) {
iter->Update();
}
與
error: passing ‘const Particle’ as ‘this’ argument of ‘void Particle::Update()’ discards qualifiers
不知道如何處理這事,如果需要更多的信息/解釋,讓我知道。
在此先感謝!
您能否詳細說明參考與指針?如何和一點爲什麼? – Miles 2011-03-22 06:29:04
@Miles:查看本FAQ:http://www.parashift.com/c++-faq-lite/references.html#faq-8.6 – Naveen 2011-03-22 07:19:57