1. 面向對象的四個主要特征: 抽象, 封裝, 繼承,多態
2. 與普通的函數不同, 類的成員函數需要在實現的時候使用類名來限制,例如:
void Car: getPrice()
{
//......
}
3.類成員的三種訪問權限: public — 公有類型 private -私有類型 protected-保護類型
私有成員只能被本類的成員函數訪問,來自類外部的任何訪問都是非法的
保護類型成員可以被本類和其子類訪問到
4. 類的成員函數
內聯成員函數: 類中有比較簡單而且被經常使用的代碼,就定義為內聯成員函數。
5. 對象: 對象的存儲空間中只是用於存放數據成員, 函數成員不會存放在對象的存儲空間之中。
6. 對象的建立過程: 在程序執行過程中,當遇到對象聲明語句時,程序會向操作系統申請一定的內存空間用於存放新建的對象。
7. 構造函數: 在對象被創建時利用特定的值構造對象,將對象初始化為一定的狀態。
構造函數的特點: a. 構造函數的函數名和類名相同 ,而且沒有返回值 b. 構造函數一般被聲明為公有函數
構造函數在對象被創建時,被自動調用
如果類中沒有寫構造函數,編譯器會自動生成一個默認的構造函數。沒有形參,也不做任何事情。
8. 拷貝構造函數: 是一種特殊的構造函數,具有一般構造函數的所有特性,其形參是本類的對象的引用。 其作用是使用一個已經存在的對象,去初始化同類的另外一個對象
如果沒有主動定義類的拷貝構造函數,那麼系統會在必要時自動生成一個默認的拷貝構造函數,默認的拷貝構造函數會把初始值對象的每個數據成員的值都復制到新的對象之中。
9. 普通的構造函數是在對象創建時被調用, 而拷貝構造函數在以下三種情況下被調用:
a. 當用一個類的對象去初始化另外一個類的對象時
b. 如果函數的形參是類的對象,則在函數被調用, 實參和形參結合時
c. 如果函數的返回值是對象,則在函數被調用,返回時
10. 析構函數: 在對象的生命周期即將結束時,被自動調用.
析構函數的名稱由類名前面加~構成,沒有返回值,而且不接受任何參數。