[問題] 請教一下,如何呼叫destructor呢?

看板C_and_CPP (C/C++)作者 (懷錶)時間16年前 (2009/05/09 20:27), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/1
是這樣的,我正在寫某個程式用來模擬細菌族群的行為 其中我寫了一個class叫germ用來代表細菌,我希望在細菌死亡的時候可以 由我主動呼叫germ的destructor來回收記憶體 但初學者我的認知是: destructor只能由編譯器決定呼叫時機 不知道各位先進們有沒有辦法實現主動呼叫destrutor的方法呢?或是等效的這麼做? PS.我用的是C++ 非C 先多謝各位指教了~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.37.165

05/09 20:53, , 1F
用 new 建立物件,用 delete 時即呼叫 destructor
05/09 20:53, 1F

05/09 20:58, , 2F
那有沒有可能由物件本身來delete自己呢? 我希望細菌在
05/09 20:58, 2F

05/09 20:59, , 3F
知道自己生命力降到零時乖乖的主動死掉...而不需要我動
05/09 20:59, 3F

05/09 21:00, , 4F
手在main中delete它 也就是delete的條件是由object中
05/09 21:00, 4F

05/09 21:01, , 5F
的變數來決定,這時候我也希望"死掉"這動作是用class中的
05/09 21:01, 5F

05/09 21:02, , 6F
函數來執行... 但爬文後發現delete this這方法似乎
05/09 21:02, 6F

05/09 21:03, , 7F
不太好... 所以現在也不知怎麼做(抱歉我很外行T_T")
05/09 21:03, 7F

05/09 21:14, , 8F
用個迴圈一個個pool吧...
05/09 21:14, 8F

05/09 21:16, , 9F
一直new一直delete...這個程式鐵定跑不久
05/09 21:16, 9F

05/09 21:26, , 10F
你是如何讓obj做hp遞減的?當下判斷小於零就delete該obj
05/09 21:26, 10F
文章代碼(AID): #1A1NR0VG (C_and_CPP)
文章代碼(AID): #1A1NR0VG (C_and_CPP)