什麼是類(無師自通)

2020-07-16 10:04:35
在 C++ 中,類是主要用於建立物件的構造體。在建立和使用物件之前,必須描述它將具有哪些成員變數和成員函數,這是通過定義一個類來完成的。

類(Class)是一種程式設計師定義的資料型別,用於描述從類建立的物件在構造時將是什麼樣子的。很快本節將介紹如何定義自己的類,但現在不妨先來看一下已經熟悉的類。

使用已經知道的類

教學幾乎從一開始就一直在使用 string 類來建立和使用 string 物件。回想一下,在使用 string 類的任何程式中都必須具有以下 #include 指令:

#include <string>

這是必要的,因為 string 標頭檔案是定義 string 類的地方。程式中包含此標頭檔案,就可以根據需要定義多個 string 物件。其方法也很簡單,只需命名該類,然後再輸入想賦予物件的名字。範例如下。

string city, state;

該語句建立了兩個 string 物件。一個被命名為 city,另一個被命名為 state。兩個物件都是 string 類的範例,儘管它們可以賦給不同的資料值,但兩個物件基本上看起來都一樣。也就是說,兩者都將有一個可以容納一個字串的成員變數,並且兩者都具有可以對字串操作的相同的一組函數。

一旦建立了一個 string 物件,就可以在其中儲存資料。因為 string 類被設計為與賦值運算子一起使用,所以可以為 string 物件賦值字串常數,範例如下:

city= "Chicago";
state = "Illinois";

這些語句將 Chicago 儲存在 city 物件的成員變數中,將 Illinois 儲存在 state 物件的成員變數中。

string 類包括許多成員函數,它們可以對 string 物件所持有的資料執行操作。在教學前面的章節中,曾經介紹了其中的幾個。其中一個是名為 length 的成員函數,它返回 string 物件中儲存的字串的長度。範例如下:

cout << city.length () << endl; // 該語句列印 7
cout << state.length () << endl; // 該語句列印 8

這些語句都呼叫了相同的成員函數,但在每種情況下都可以使用物件自己的資料。儲存在 city 中的資料是長度為 7 的字串,而儲存在 state 中的資料則是長度為 8 的字串。

需要再次強調的是,建立和使用 string 物件,並不需要知道如何實現 string 類,只需要知道它可以儲存什麼型別的資料,以及可以呼叫哪些函數對資料進行操作。

建立自己的類

要建立自己的類,必須編寫一個類的宣告。以下是類宣告的一般格式:

class ClassName //類宣告以關鍵字class和類名稱開始
{
    //在這裡宣告類的成員變數和成員函數
}; //注意,這裡需要分號

現在來通過一個範例一步一步地學習如何實現類。

Circle對象包含一個成員變量和兩個成員函數
圖 1 Circle 物件包含一個成員變數和兩個成員函數