看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Zoxge (Zoxge)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : Linux : 問題(Question): : 我的vector是 vector<ABC*> vVec; ^^^^ vVec 中的 element type 是 ABC* [中略] : setOS部份: : vVec.at(i).setOS( &(vVec.at(j)) ); ^ vVec.at(i) 是 ABC* 所以這邊應該是 -> 才對? 另外 setOS 的參數吃的是 ABC* 但你給他的會是 ABC** : setIS部份: : ABC* s = &(vVec.at(i)); 同樣的 &(vVec.at(i)) 的型別為 ABC** : for(int k=0; k<s->ossize(); k++) : { : s->os(k)->setIS(s); : } 感覺 vVec 似乎應該是 vector<ABC> 如果真的是這樣 那你的麻煩就很大了 因為你在塞資料進 vector 時會產生 reallocation 所以用 &(vVec.at(i)) 取得的位址會失效 即便不是如此 ABC 這個 class 的結構也太異常了 就算沒這個 bug 也一定會有其它 bug 的 建議你把這個 class 中的功能儘量獨立出來 否則這種複雜的結構會讓你 debug 超級痛苦 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.78.231