讓C 物件自殺

2022-09-12 22:39:30 字數 982 閱讀 7746

今天檢測記憶體洩露,有類似如下**:

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 ...