C++ 類 & 物件

江左子固發表於2024-08-04

C++ 在 C 語言的基礎上增加了物件導向程式設計,C++ 支援物件導向程式設計類是 C++ 的核心特性,通常被稱為使用者定義的型別。

類用於指定物件的形式,是一種使用者自定義的資料型別,它是一種封裝了資料和函式的組合。類中的資料稱為成員變數,函式稱為成員函式。類可以被看作是一種模板,可以用來建立具有相同屬性和行為的多個物件。


C++ 類定義

定義一個類需要使用關鍵字 class,然後指定類的名稱,並類的主體是包含在一對花括號中,主體包含類的成員變數和成員函式。

定義一個類,本質上是定義一個資料型別的藍圖,它定義了類的物件包括了什麼,以及可以在這個物件上執行哪些操作。
啊

以下例項我們使用關鍵字 class 定義 Box 資料型別,包含了三個成員變數 length、breadth 和 height:

class Box
{
   public:
      double length;   // 盒子的長度
      double breadth;  // 盒子的寬度
      double height;   // 盒子的高度
};

關鍵字 public 確定了類成員的訪問屬性。在類物件作用域內,公共成員在類的外部是可訪問的。您也可以指定類的成員為 privateprotected,這個我們稍後會進行講解。


定義 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)

相關文章