我在想,如果默認的類析構函數在被調用時實際上做了什麼。做默認析構函數做什麼?
我一直在研究它,我發現如果我用一個調用它自己的析構函數的函數創建一個類,它根本不會做任何事情(即所有變量都保持不變,並且實例仍然存在並且可用)。
這是否意味着類的析構函數可以被認爲是所有類都具有的繼承的虛函數,並且可以重新定義它(刪除指針等並清除成員變量),但是如果不重新定義它什麼都不做?
如果是這樣,不能將析構函數實質上用作「清除所有數據」類型的函數,並通過清除動態內存分配變量並重新使用它而不是獲取計算機來使代碼的某些部分更有效在堆上找到新的內存塊?
謝謝。
如果調用析構函數手動釋放內存,如果該對象被破壞,然後會發生什麼?我不確定你的目標是什麼,但它可能更適合簡單的成員函數。 – Bingo 2013-02-16 12:24:51
回答這個問題可能會有所幫助:HTTP://stackoverflow.com/questions/1036019/does-calling-a-destructor-explicitly-destroy-an-object-completely – 2013-02-16 12:30:31
考慮使用內存池或放置新/刪除,而不是這種優化。請記住:「不成熟的優化是萬惡之源」。 – doc 2013-02-16 13:08:02