作者QQ29 (我愛阿蓉)
看板C_and_CPP
標題[問題] pointer的reference(this pointer)
時間Tue Jul 2 18:05:42 2013
大家好...
遇到一個詭異的程式結果
我想了好久
跟我預期的完全不一樣
想請教各位
為啥會有這種問題
並且想問說 這種寫法是不是很危險
程式碼很短
平台是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
→ 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