析構函數的作用在撤銷對象占用的內存之前完成一些清理工作,除此之外還有沒有其他作用?
24 个解决方案
析構函數主要被用來放棄在類對象的構造函數或生命期中獲得的資源,如釋放互斥鎖或刪除
由操作符new 分配的內存!
析構函數不局限在放棄資源上,一般地析構函數可以執行類設計者希望在最后一次
使用對象之后執行的任何操作!
主要是處理資源, 釋放,
還有就是一些特殊具體的功能:
比如,當你定義了student類, 並且靜態變量HowManyStudent, 用來計算學生數目, 構造函數里面HowManyStudent加一, 析構函數里面減一. 這就是為了實現具體的功能了.
呵呵~~~~
LZ找本C++ 的書看看!! 如果任何一本C++基礎的書,沒有把這個問題說明白, 那個作者就是白痴!
提供了一個自動調用的接口
你可以在里面寫你要做的事情,主要是用來釋放調申請的內存,資源,或者是Reset一些東西
析構函數的作用在撤銷對象占用的內存之前完成一些清理工作,除此之外還有沒有其他作用?
=============================================
除此之外,就是 a piece of shit
mechanism, not policy.
析構函數設計用於在對象生命周期結束時候被自動調用,至於它可以做什么,完全取決於實現這個析構函數的人。:)
析構函數是釋放內存空間的,而且可以設置為虛函數,釋放一些默認析構釋放不了的空間
可能它的原始目的是對將要離開作用域的類變量做一些善后工作。
但現在來看,它可以做一些分外的工作。
也就是說,從行為上析構函數能夠在執行流離開變量作用域時自動調用(包括拋出異常時),任何時候只要你想利用這一特性,你就可以從它的身上得到好處。
mechanism, not policy.
析構函數設計用於在對象生命周期結束時候被自動調用,至於它可以做什么,完全取決於實現這個析構函數的人。
:)
9樓說的好啊!
就是啊 3年了 還沒結貼 真是牛人
請當地公安局調查下樓主是否尚在人間
釋放內存 然后做你想要做的事情
不過一般系統會自動生成一個缺省的析構函數,即使顯式定義了析構函數,編譯器會先調用自定義的然后在調用默認的合成析構函數