1. 程式人生 > >C++筆記 第二十二課 物件的銷燬---狄泰學院

C++筆記 第二十二課 物件的銷燬---狄泰學院

如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。
學習C++編譯環境:Linux

第二十二課 物件的銷燬

1.物件的銷燬

生活中的物件都是被初始化後才上市的
生活中的物件被銷燬前會做一些清理工作
問題:C++中如何清理需要銷燬的物件
一般而言,需要銷燬的物件都應該做清理
解決方案
為每個類都提供一個public的free函式
物件不再需要時立即呼叫free函式進行清理
在這裡插入圖片描述
main.cpp IntArray使用分析
存在的問題
free只是一個普通的函式,必須顯示的呼叫
物件銷燬前沒有做清理,很可能造成資源洩漏
C++編譯器是否能夠自動呼叫某個特殊的函式進行物件的清理?

2.解構函式

C++的類中可以定義一個特殊的清理函式
這個特殊的清理函式叫做解構函式
解構函式的功能與建構函式相反
定義:~ClassName()
解構函式沒有引數也沒有返回值型別宣告
解構函式在物件銷燬時自動被呼叫

20-1 解構函式使用初探

IntArray.cpp IntArray類的進化

解構函式的定義準則
當類中自定義了解構函式,並且建構函式中使用了系統資源(如:記憶體申請,檔案開啟等),則需要自定義解構函式
小結
解構函式是物件銷燬時進行清理的特殊函式
解構函式在物件銷燬時自動被呼叫
解構函式是物件釋放系統資源的保障