第12章 類
1. 建構函式
類的建構函式一般使用一個初始化列表來初始化對象的資料成員。
2. 成員函數
在類內部聲明成員函數是必須的,而定義成員函數則是可選的。在類內部定義的函數預設為inline。而在類外部定義的成員函數必須指明它們是在類的範圍內。
成員函數有一個附加的隱含實參,將函數綁定到調用函數的對象。這個隱含的實參其實是this指標。對像的this指標並不是對象本身的組成部分,它不佔對象的記憶體空間,在每次非static成員函數調用對象的時候,this指標作為隱藏的第一個參數由編譯器傳遞給對象。
將關鍵字const 加在形參表之後,就可以將成員函式宣告為常量:
如:
double avg_price() const;
const成員不能改變其所操作的對象的資料成員。const必須同時出現在聲明和定義中,若只出現在一處,就會出現一個編譯時間錯誤。
3. 資料抽象與封裝
4. 類的聲明與定義
類的定義放在標頭檔件中是一個很好的做法。
可以聲明一個類而不定義它:
如:class Screen;
這個聲明也稱為前向聲明,在聲明之後定義之前,這個類是一個不完全類型,即已知類型卻不知道包含哪些成員。
5. 類對象
定義類是定義了一種新的類型,定義了類型之後就可以定義該類型的對象。定義對象的時候要為對象分配儲存空間,但定義類型的時候是不進行儲存分配的。
6. 類成員的顯示初始化
對於沒有定義建構函式並且其全體資料成員均是public的類可以採用與初始數組元素相同的方式初始化其成員。
這個地方所說的其實就是struct。在C++中struct和class一樣都是定義一個類。在C++中允許這種形式的初始化其實就是為了對C程式實現相容。
因為在C中可以對struct進行顯示的初始化。
建構函式
友元
Static成員變數和成員函數
第13章 複製控制
每種類型,無論是內建類型還是類類型,都對該類型對象的一組操作的含義進行了定義。每種類型還定義了建立該類型的對象時會發生什麼——建構函式定義了該類 型對象的初> 始化。類型還能控制複製、賦值或撤銷該類型的對象時會發生什麼——類通過特殊的成員函數:複製建構函式、賦值操作符和解構函式類控制這些行為。
- 複製建構函式
- 賦值操作
- 解構函式
第14章 重載操作符與轉換