跳轉到內容

理解 C++/物件

來自華夏公益教科書,為開放世界提供開放書籍

物件是一個抽象的概念或事物,具有可以操縱的特徵和行為。 物件也有人們用來稱呼它們的名稱。 人們使用物件的名稱、特徵和行為來定義和區分不同型別的物件。 在建立和操作某型別物件之前,必須定義或宣告該型別物件。 這與建築商在閱讀和理解學校藍圖之前無法開始建造學校一樣。

基本物件型別

[編輯 | 編輯原始碼]

C++ 定義了 8 種基本物件型別。charshortintlonglong longdoublelong doublebool

標準物件型別

[編輯 | 編輯原始碼]

C++ 在其標準庫中定義了其他物件型別。 例如 stringvector

新物件

[編輯 | 編輯原始碼]

新物件使用 classstruct 關鍵字宣告,後跟物件的名稱、主體和分號 (;)。 主體由定義可以操縱的物件的特徵和行為的一組 ({}) 指令組成。 您也可以在主體內部定義和操縱其他物件。

一個愚蠢的例子

class example
{
    int v;
    int f();
};

這裡類 example 包含兩個成員——一個成員變數,名為 v,和一個成員函式,名為 f。

訪問說明符

[編輯 | 編輯原始碼]

物件的全部成員要麼是公有的、受保護的,要麼是私有的。 這決定了成員可以在哪裡使用。

公有成員可以在任何地方呼叫和使用。 其他物件和函式可以呼叫和使用公有成員。

保護成員只能由物件本身和繼承樹中的物件呼叫和使用。 一個物件必須從一個物件繼承才能呼叫和使用其保護成員。 這可能看起來很愚蠢,但有時您需要共享成員並允許這些成員在繼承物件中表現出不同的行為,而不讓任何人影響其行為。

私有成員只能由物件本身呼叫和使用。 從物件繼承的其他物件無法呼叫或使用私有成員。

在類定義之外定義成員函式

[編輯 | 編輯原始碼]

在示例類中定義函式就像定義常規函式一樣,除了有一點不同。 為了定義類的成員函式,您必須在函式名前面加上類名和兩個冒號,如下所示

int example::f()
{
    ...
}

這在類 example 中定義了該函式。

華夏公益教科書