共用方式為


類別成員

類別可以有下列類型的成員:

備註

類別的成員清單可以使用稱為存取指定名稱的關鍵字分成 private、protected 和 public 區段。冒號 : 必須接在存取指定名稱後面。這些區段不需要是連續的,也就是說,這些關鍵字中任何一個都可以在成員清單中出現多次。關鍵字會指定到下一個存取指定名稱,或右大括號之前所有成員的存取權限。

成員清單中的成員宣告是以分號 (;) 分隔。請參閱類別成員宣告語法

成員清單的用途是:

  • 為特定類別宣告一組完整的成員。

  • 指定與各種類別成員相關聯的存取權限 (public、private 或 protected)。

在成員清單的宣告中,您只能宣告成員一次,重新宣告成員會產生錯誤訊息。 由於成員清單是一組完整的成員,因此您無法透過後續類別宣告加入特定類別的成員。

成員宣告子不可包含初始設定式。 提供初始設定式會產生錯誤訊息,如下列程式碼所示:

// class_members1.cpp
// C2864 expected
class CantInit
{
public:
    long l = 7;       // Error: attempt to initialize
                      //  class member.
    static int i = 9; // Error: must be defined and initialized
                      // outside of class declaration.
};
int main()
{
}

由於特定類別類型的每個物件都會建立一個各自不同的非靜態成員資料執行個體,因此初始化成員資料的正確方式是使用類別的建構函式 (建構函式將涵蓋在建構函式中)。

特定類別類型的所有物件只會有一個共用的靜態資料成員複本。 靜態資料成員必須以檔案範圍定義,而且可以依檔案範圍初始化 (如需靜態資料成員的詳細資訊,請參閱靜態資料成員)。下列範例將示範如何執行這些初始化:

// class_members2.cpp
class CanInit
{
public:
    CanInit() { l = 7; } // Initializes l when new objects of type 
                         //  CanInit are created.
    long       l;
    static int i;
    static int j;
};

// i is defined at file scope and initialized to 15.
// The initializer is evaluated in the scope of CanInit.
int CanInit::i = 15;                                                       

// The right side of the initializer is in the scope 
// of the object being initialized
int CanInit::j = i;  

int main()
{
}
注意事項注意事項

類別名稱 CanInit 前面必須加上 i,才能將所要定義的 i 指定為 CanInit 類別的成員。

Microsoft 特定的

Microsoft C++ 允許在類別定義中初始化靜態、const 整數和 const enum 資料成員。 請參閱 C 和 C++ 的 Microsoft 擴充功能

請參閱

參考

類別、結構和等位