[問題] 奇怪的delete問題

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2010/01/08 19:22), 編輯推噓3(3010)
留言13則, 4人參與, 最新討論串1/1
大家好 我想問一下大家怎麼release singleton這個指標 是在release裡面寫 { delete 所有member 的指標 最後再 delete p_Singleton; } 這樣子嗎? 而我下面做了一個惡搞 http://nopaste.csie.org/63f22 我觀念是覺得 delete p_Singleton和 delete this;應該一樣阿? 確實delete後 都會觸發destructor 但是delete this好像沒看過有人這樣寫... 而且我設定NULL 後 才發現一件事 之前都聽到口頭說 this就是 ->的左值 還以為他們是ref關係 原來只是一份copy....結果也沒設成NULL.. delete this是很不好的寫法嗎? thx~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66

01/08 19:30, , 1F
this指著物件,包含著x 先delete [] x; 再delete p;
01/08 19:30, 1F

01/08 19:30, , 2F
這樣不會重覆delete嗎 囧
01/08 19:30, 2F

01/08 19:31, , 3F
delete this; ^^^^^
01/08 19:31, 3F

01/08 19:34, , 4F
const_cast<A*>(this)=NULL; 把this指到NULL沒必要吧
01/08 19:34, 4F

01/08 20:06, , 5F
因為我一開始以為他其實就是 p_singleton的ref
01/08 20:06, 5F

01/08 20:06, , 6F
所以想指向null 還有版主說 重複delete??? 就算delete
01/08 20:06, 6F

01/08 20:07, , 7F
p_singleton 效果也一樣 不過感覺他只是還回去 sizeof(x)
01/08 20:07, 7F

01/08 20:07, , 8F
你仔細想為什麼 delete pointer 之後為什麼要設 NULL
01/08 20:07, 8F

01/08 20:07, , 9F
指標大小 為什麼說會重複呢?
01/08 20:07, 9F

01/08 20:07, , 10F
應該就可以了解 你完全不需要把 this 設為 NULL
01/08 20:07, 10F

01/08 20:08, , 11F
恩 我現在知道他們只是指向同一個位址的指標@@ 這樣說沒錯吧
01/08 20:08, 11F

01/08 20:32, , 12F
等等 這應該不會重複delete 剛剛看太快抱歉
01/08 20:32, 12F

01/08 21:53, , 13F
delete this; // block or access de..
01/08 21:53, 13F
文章代碼(AID): #1BHnLw7J (C_and_CPP)
文章代碼(AID): #1BHnLw7J (C_and_CPP)