析構函數是“反向”的構造函數。它們在對象被撤消(回收)時調用。析構函數的名 稱除了最前面的“~”符號外,與類的名稱相同。例如,類String的析構函數是~string()。 析構函數通常用於當一個對象不再需要時,完成“消除”功能。
在函數中建立對象之後,這個對象作為局部對象開始生存,直到函數運行到遇見右括號“}”才結束生存,此時調用析構函數。
對象的釋放發生在以下幾種情況,首發自學編程網:
·使用運算符new分配的對象被delete刪除。
·一個具有塊作用域的本地(自動)對象超出其作用域。
·臨時對象的生存期結束。
·程序結束運行。
·使用完全限定名顯示調用對象的析構函數。
有幾條規則約束著析構函數的說明:
·不能接受參量。
· 不能說明有任何返回類型(包括void)。
·不能用return語句返回值。
· 不能說明為const、volatile或static,但析構函數可以因說明為const、volatile或static的對象的析構而被調用。
·可以說明為虛擬的。使用虛析構函數,可以撤消對象而不必知道該對象的類型。由於使用虛擬函數機制,程序將調用該對象的正確的析構函數。
http://blog.csdn.net/chenlinben/article/details/8002471
本文出自 “chenlinben” 博客,請務必保留此出處http://linben.blog.51cto.com/6205951/1293488