在C++的學習中記錄中進階進階(3)?

Tags: 函式, 進階,

我們知道,在計算機中資料的儲存,不同的型別分配的儲存空間是不一樣的,按儲存來分,一般分為:資料段,程式碼段,堆疊段三大類,當然這裡還涉及著儲存的方式,和讀取的方法;今天則是對類中重要的成員函式建構函式和解構函式進行學習和鞏固;

在C++的學習中記錄中進階進階(3)

在C++的學習中記錄中進階進階(3)

工具/原料

開發環境:LINUX-Fedora作業系統

編輯器:VIM+編譯器:GCC+偵錯程式:GDB

方法/步驟

一.對建構函式和解構函式的認識:

上一節我們提到了,類的封裝性,Public好比對外的公共介面,外部資料通過統一的資料介面和內部成員進行互動,而建構函式好比官方的大門,通過該大門就能對資料成員進行初始化;

建構函式是什麼?

→→→就是成員函式;

建構函式的工作是什麼?

→→→為物件分配空間,進行初始化工作;

建構函式的特徵?

→→→名字和類名相同,可以有任意型別的引數,但是建構函式不能被宣告有型別(void也不行),所以並不具有返回值;

建構函式的表達形式有哪些?

→→→①類名 物件名【(實參表)】;

→→→②類名 *指標變數名=new 類名【(實參表)】;

在C++的學習中記錄中進階進階(3)

解構函式是什麼?

→→→還是成員函式;

建構函式的工作是什麼?

→→→執行與建構函式相反的操作,通常用於釋放物件的記憶體空間;

建構函式的特徵?

→→→名字和類名相同,但前面有個”~“。沒有引數,沒有返回值,不能過載,在一個類中有且只有一個;

在C++的學習中記錄中進階進階(3)

二.帶預設引數的建構函式:

當自定義了預設引數的建構函式,系統將不會呼叫預設的建構函式;

同樣,正因為有了帶預設引數的建構函式,也使建構函式具有過載的能力,建構函式的引數個數,型別種類的不同組合提高了建構函式的靈活性;

在C++的學習中記錄中進階進階(3)

在C++的學習中記錄中進階進階(3)

在C++的學習中記錄中進階進階(3)

三.拷貝建構函式:

拷貝建構函式是什麼?

→→→是一種特殊的建構函式;

拷貝建構函式的工作是什麼?

→→→在建立一個新的物件時,使用一個已經存在的物件去初始化這個新物件;

建構函式的特徵?

→→→和建構函式一樣,與類名相同,沒有返回值,但是引數個數只能與一個,並且是同類物件的引用;每個類必須有一個拷貝建構函式;

拷貝建構函式的表達形式:

→→→類名::類名(const 類名 &物件名){

拷貝建構函式的函式體

注意事項

多思,多練,多敲程式碼

如有錯誤,歡迎糾正

相關問題答案