
- C++ 基礎
- C++ 首頁
- C++ 概述
- C++ 環境設定
- C++ 基本語法
- C++ 註釋
- C++ Hello World
- C++ 省略名稱空間
- C++ 常量/字面量
- C++ 關鍵字
- C++ 識別符號
- C++ 資料型別
- C++ 數值資料型別
- C++ 字元資料型別
- C++ 布林資料型別
- C++ 變數型別
- C++ 變數作用域
- C++ 多個變數
- C++ 基本輸入/輸出
- C++ 修飾符型別
- C++ 儲存類
- C++ 運算子
- C++ 數字
- C++ 列舉
- C++ 引用
- C++ 日期和時間
- C++ 控制語句
- C++ 決策
- C++ if 語句
- C++ if else 語句
- C++ 巢狀 if 語句
- C++ switch 語句
- C++ 巢狀 switch 語句
- C++ 迴圈型別
- C++ while 迴圈
- C++ for 迴圈
- C++ do while 迴圈
- C++ foreach 迴圈
- C++ 巢狀迴圈
- C++ break 語句
- C++ continue 語句
- C++ goto 語句
- C++ 建構函式
- C++ 建構函式和解構函式
- C++ 複製建構函式
- C++ 檔案處理
- C++ 檔案和流
- C++ 從檔案中讀取
C++ 類和物件
C++ 程式設計的主要目的是為 C 程式語言新增面向物件特性,而類是支援面向物件程式設計的 C++ 的核心特性,通常稱為使用者定義型別。
類用於指定物件的格式,它將資料表示和操縱該資料的方法組合到一個簡潔的包中。類中的資料和函式稱為類的成員。
C++ 類定義
定義類時,定義的是資料型別的藍圖。這實際上並沒有定義任何資料,但它確實定義了類名的含義,即類的物件將包含什麼以及對這樣的物件可以執行哪些操作。
類定義以關鍵字`class`後跟類名開頭;類體用一對大括號括起來。類定義後面必須跟分號或宣告列表。例如,我們使用關鍵字`class`定義了 Box 資料型別,如下所示:
class Box { public: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box };
關鍵字`public`確定其後類成員的訪問屬性。公共成員可以在類的物件作用域內的任何地方從類外部訪問。您還可以將類的成員指定為`private`或`protected`,我們將在一個小節中討論。
定義 C++ 物件
類為物件提供藍圖,因此基本上物件是從類建立的。我們宣告類的物件的方式與宣告基本型別的變數完全相同。以下語句聲明瞭 Box 類的兩個物件:
Box Box1; // Declare Box1 of type Box Box Box2; // Declare Box2 of type Box
Box1 和 Box2 兩個物件都將擁有自己的一份資料成員副本。
訪問資料成員
可以使用直接成員訪問運算子 (.) 訪問類的物件的公共資料成員。讓我們嘗試以下示例來說明:
#include <iostream> using namespace std; class Box { public: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box }; int main() { Box Box1; // Declare Box1 of type Box Box Box2; // Declare Box2 of type Box double volume = 0.0; // Store the volume of a box here // box 1 specification Box1.height = 5.0; Box1.length = 6.0; Box1.breadth = 7.0; // box 2 specification Box2.height = 10.0; Box2.length = 12.0; Box2.breadth = 13.0; // volume of box 1 volume = Box1.height * Box1.length * Box1.breadth; cout << "Volume of Box1 : " << volume <<endl; // volume of box 2 volume = Box2.height * Box2.length * Box2.breadth; cout << "Volume of Box2 : " << volume <<endl; return 0; }
編譯並執行上述程式碼後,將產生以下結果:
Volume of Box1 : 210 Volume of Box2 : 1560
需要注意的是,不能使用直接成員訪問運算子 (.) 直接訪問私有和受保護的成員。我們將學習如何訪問私有和受保護的成員。
詳細介紹類和物件
到目前為止,您已經對 C++ 類和物件有了非常基本的瞭解。還有更多關於 C++ 類和物件的有趣概念,我們將在下面列出的各個小節中討論:
序號 | 概念和描述 |
---|---|
1 | 類成員函式
類的成員函式是在類定義中定義或宣告其原型的函式,就像任何其他變數一樣。 |
2 | 類訪問修飾符
類成員可以定義為 public、private 或 protected。預設情況下,成員將被假定為 private。 |
3 | 建構函式和解構函式
類的建構函式是類中的一種特殊函式,在建立類的新的物件時呼叫。解構函式也是一個特殊函式,在建立的物件被刪除時呼叫。 |
4 | 複製建構函式
複製建構函式是一個建構函式,它透過使用先前建立的相同類的物件來初始化物件來建立物件。 |
5 | 友元函式
友元函式被允許完全訪問類的私有和受保護成員。 |
6 | 行內函數
使用行內函數,編譯器會嘗試在函式呼叫的位置擴充套件函式體中的程式碼。 |
7 | this 指標
每個物件都有一個特殊的指標`this`,它指向物件本身。 |
8 | 指向 C++ 類的指標
指向類的指標與指向結構體的指標完全相同。實際上,類實際上只是一個包含函式的結構體。 |
9 | 類的靜態成員
類的成員變數和成員函式都可以宣告為靜態的。 |