類別成員
類別可以有這類的成員:
備註
類別的 [成員] 清單可能會被分割成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++ 中,可讓類別定義中初始化的靜態、 常數整數類資料,和常數的列舉資料成員。請參閱 c 和 C++ 的 Microsoft 擴充功能。