今天檢測記憶體洩露,有類似如下**:
1執行的結果是:classa2
8 ~a()912
private:13
inta;
14};
1516
class b:publica17
23 ~b()
2427
private:28
intb;
29};
3031
32int main(int argc, _tchar*ar**)
33
create a:
create b:
free a:
很明顯出現了記憶體洩露,只怪自己c++基礎不夠好!a,b兩個類的析構函式使用虛函式就可以解決了.但是我想到了乙個比較好玩的辦法讓c++物件自殺.於是有了下面**
view code
1執行結果如下:classa2
8 ~a()912
virtual
void
killself()
1316
private:17
inta;
18};
1920
class b:publica21
27 ~b()28
31virtual
void
killself()
3235
private:36
intb;
37};
3839
40int _tmain(int argc, _tchar*ar**)
41
create a:
create b:
free b:
free a:
洩露解決了~雖然沒有直接新增虛擬洗頭函式來的好看,就當好玩吧.
以下是一段所有人都關注物件自殺看過的一段文字:
關於C 物件的自殺
關於c 物件的自殺 jason lee csdn 2010 11 05 前兩天看到乙個問題,乙個類的成員函式是否可以delete this 據出題者的意思來看,是認為這樣的問題一般比較少人會遇到,而這樣就可以了解一下對方對未知問題的分析和解決思路。出於這點,我也想看看自己的思路,所以就先自己思考了一...
delete this 物件請求自殺
第一次見delete this的時候,沒覺得這是一項會有什麼特殊作用的技術,因此也就沒有特別關注。昨日在source com上看state模式之c 實現的時候,看到它在狀態轉換的時候使用了delete this,感覺似乎還不錯。作為一種 禁術 使用的時候必須要相當小心才行,c faq 裡提到所謂 小...
C中的自殺函式和C 中的自殺類
今天看glibc 2.7的記憶體分配 注意到乙個詭異現象 某函式的指標自我清空。也就是說,此函式指標只能用一次。具體說來就是指向函式malloc hook ini的函式指標 malloc hook。於是自己嘗試了一下這類函式的寫法。function suicide int testfunction ...