看板 C_and_CPP 關於我們 聯絡資訊
大家好... 遇到一個詭異的程式結果 我想了好久 跟我預期的完全不一樣 想請教各位 為啥會有這種問題 並且想問說 這種寫法是不是很危險 程式碼很短 平台是windows VC http://codepad.org/xK3IbjUI 我現在遇到一個case 我這段程式碼就是在模擬這問題 某個inner class有記錄 一個外面的pointer 然後拿這個pointer 一直使用 但是外面這pointer 會不定時被delete 我若是拿這pointer繼續操作 , 就會crash 於是我天真的想說 我乾脆inner class記錄外面pointer的reference(透過this) 肉眼compile感覺應該可以達到 變成說外面只要記得把pointer設定成null 我裡面只要遇到多判斷if null就do nothing... 結果就是出現一些我意料之外的情形 若是成功, outerInstance 這物件應該會變成null... 問題疑點都寫在註解... 麻煩各位跑跑看 到底我哪裡觀念有大瑕疵 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66
TsinTa:老實說,我看不懂你在寫啥,大概我中英文都不好@@" 07/02 19:05
QQ29:我也不好表達,看一下程式碼吧~ 07/02 19:20
steve1012:不能If ptr ==null 嗎 07/02 20:30
jackylu63:有Constructor,沒有Distructor 07/03 00:31
legnaleurc:好 weak_ptr, 不用嗎? 07/03 01:02
legnaleurc:http://codepad.org/7Pl451Wd 07/03 01:26
loveme00835:會寫成這樣你也挺神的... ref to pointer跟ref to int 07/03 01:29
loveme00835:對照一下生命週期還有什麼不懂的? 07/03 01:30
loveme00835:用 observer 看你要怎麼 notify 囉... 07/03 01:32
QQ29:請問生命週期 是哪邊有問題..看不太出來 麻煩賜教 07/03 13:57
QQ29:是this 都是local指標嗎? 07/03 14:01