C++ 在 C 語言的基礎上增加了物件導向程式設計,C++ 支援物件導向程式設計。類是 C++ 的核心特性,通常被稱為使用者定義的型別。
類用於指定物件的形式,是一種使用者自定義的資料型別,它是一種封裝了資料和函式的組合。類中的資料稱為成員變數,函式稱為成員函式。類可以被看作是一種模板,可以用來建立具有相同屬性和行為的多個物件。
C++ 類定義
定義一個類需要使用關鍵字 class,然後指定類的名稱,並類的主體是包含在一對花括號中,主體包含類的成員變數和成員函式。
定義一個類,本質上是定義一個資料型別的藍圖,它定義了類的物件包括了什麼,以及可以在這個物件上執行哪些操作。
以下例項我們使用關鍵字 class 定義 Box 資料型別,包含了三個成員變數 length、breadth 和 height:
class Box
{
public:
double length; // 盒子的長度
double breadth; // 盒子的寬度
double height; // 盒子的高度
};
關鍵字 public 確定了類成員的訪問屬性。在類物件作用域內,公共成員在類的外部是可訪問的。您也可以指定類的成員為 private 或 protected,這個我們稍後會進行講解。
定義 C++ 物件
類提供了物件的藍圖,所以基本上,物件是根據類來建立的。宣告類的物件,就像宣告基本型別的變數一樣。下面的語句宣告瞭類 Box 的兩個物件:
Box Box1; // 宣告 Box1,型別為 Box
Box Box2; // 宣告 Box2,型別為 Box
物件 Box1 和 Box2 都有它們各自的資料成員。
訪問資料成員
類的物件的公共資料成員可以使用直接成員訪問運算子 . 來訪問。
以下有例項:
#include <iostream>
using namespace std;
class Box
{
public:
double length; // 長度
double breadth; // 寬度
double height; // 高度
// 成員函式宣告
double get(void);
void set( double len, double bre, double hei );
};
// 成員函式定義
double Box::get(void)
{
return length * breadth * height;
}
void Box::set( double len, double bre, double hei)
//定義了一個名為 `Box` 的類中的成員函式 `set`。這個函式的作用是設定 `Box` 物件的三個屬性:長度(`length`)、寬度(`breadth`)和高度(`height`)。
//返回 `void` 型別,意味著它不返回任何值。它接收三個引數:`len`、`bre` 和 `hei`,它們都是 `double` 型別,表示浮點數,可以用來表示具有小數的數值。
{
length = len;
breadth = bre;
height = hei;
}
int main( )
{
Box Box1; // 宣告 Box1,型別為 Box
Box Box2; // 宣告 Box2,型別為 Box
Box Box3; // 宣告 Box3,型別為 Box
double volume = 0.0; // 用於儲存體積
// box 1 詳述
Box1.height = 5.0;
Box1.length = 6.0;
Box1.breadth = 7.0;
// box 2 詳述
Box2.height = 10.0;
Box2.length = 12.0;
Box2.breadth = 13.0;
// box 1 的體積
volume = Box1.height * Box1.length * Box1.breadth;
cout << "Box1 的體積:" << volume <<endl;
// box 2 的體積
volume = Box2.height * Box2.length * Box2.breadth;
cout << "Box2 的體積:" << volume <<endl;
// box 3 詳述
Box3.set(16.0, 8.0, 12.0);
volume = Box3.get();
cout << "Box3 的體積:" << volume <<endl;
return 0;
}
當上面的程式碼被編譯和執行時,它會產生下列結果:
Box1 的體積:210
Box2 的體積:1560
Box3 的體積:1536
需要注意的是,私有的成員和受保護的成員不能使用直接成員訪問運算子 (.) 來直接訪問。
引用連結C++ 類 & 物件 | 菜鳥教程 (runoob.com)