C++ 在 C 語言基礎上引入面向對象程式設計,類別 是其核心特性,可視為使用者自訂的資料型別。類別描述了物件的藍圖,封裝了資料表示(資料成員)與操作資料的方法(成員函式)。
使用 class 關鍵字定義類別,主體包裹在大括號內,結尾需加分號。範例定義一個 Box 類別:
class Box {
public:
double length; // 長度
double breadth; // 寬度
double height; // 高度
};
public 指定成員在類別外部可存取;亦可使用 private(預設)或 protected 控制可見性。
物件是類別的實例。宣告方式與基本型別變數相同:
Box Box1; // 宣告 Box1,型別為 Box
Box Box2; // 宣告 Box2,型別為 Box
每個物件擁有獨立的資料成員副本。透過 成員存取運算子 (.) 存取公有成員:
Box1.length = 6.0;
Box1.breadth = 7.0;
Box1.height = 5.0;
double volume = Box1.length * Box1.breadth * Box1.height;
#include <iostream>
using namespace std;
class Box {
public:
double length, breadth, height;
};
int main() {
Box Box1, Box2;
double volume = 0.0;
// Box1 尺寸
Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0;
// Box2 尺寸
Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0;
volume = Box1.height * Box1.length * Box1.breadth;
cout << "Box1 體積:" << volume << endl;
volume = Box2.height * Box2.length * Box2.breadth;
cout << "Box2 體積:" << volume << endl;
return 0;
}
輸出:
Box1 體積:210 Box2 體積:1560
掌握基礎後,建議依序深入以下核心概念:
| 概念 | 說明 |
|---|---|
| 類別成員函式 | 定義於類別內部的函式,可存取類別所有成員 |
| 類別存取修飾符 | public、private、protected 控制成員可見性 |
| 建構函式 & 解構函式 | 物件建立/銷毀時自動呼叫的特殊函式 |
| 拷貝建構函式 | 以同類別既有物件初始化新物件 |
| 友元函式 | 可存取類別 private/protected 成員的非成員函式 |
| 內聯函式 | 編譯器嘗試在呼叫點展開函式本體 |
| this 指標 | 指向當前物件的特殊指標 |
| 指向類別的指標 | 類似結構體指標,類別可視為帶函式的結構 |
| 類別靜態成員 | 屬於類別而非單一物件的資料/函式成員 |
. 運算子存取,需透過公有成員函式。const 成員函式承諾不修改物件狀態,提升程式碼健壯性。