類別成員宣告語法

類別資料成員和函式成員通常會宣告下列宣告的規則。所組成,順序如下:

  • 宣告規範。在 [類別] 的儲存類別規範靜態可變動所允許的資料成員。Cv 限定詞 const 和volatile所允許的資料和函式成員。宣告規範friend, 靜態虛擬內嵌函式,雖然允許friend表示非成員函式。

  • 沒有初始設定式的宣告子。如果是虛擬的函式,形式純規範 = 0 用在函式宣告子之後,來指定純虛擬函式 (不使用該類別中實作的情況下,為虛擬函式)。

  • (選擇性) 位元欄位。請參閱位元欄位。

OR

  • 函式定義。在函式定義可以包含在類別中。如果這樣定義的成員函式,則會自動視為內嵌。

OR

成員資料無法宣告為自動, extern,或註冊的儲存類別。它們,不過,可以宣告為具有靜態的儲存類別。

當您宣告friend類別在 [成員] 清單中,您可以略過的成員宣告子清單。如需有關朋友的詳細資訊,請參閱朋友規範朋友。即使不介紹了類別名稱,它可以用於friend宣告。這friend宣告會引入的名稱。不過,在這種類別的成員宣告,複雜的型別規範的語法必須使用,如下列範例所示:

// class_member_declaration_syntax.cpp
// compile with: /c
struct HasFriends {
   friend class NotDeclaredYet;
};

在上述範例中,沒有任何成員宣告子清單類別宣告之後。因為宣告NotDeclaredYet有尚未被處理,會使用複雜的型別規範表單: class NotDeclaredYet。已宣告的型別可以指定在friend使用標準的型別規範的成員宣告:

// class_member_declaration_syntax2.cpp
// compile with: /c
struct AlreadyDeclared {};

struct HasFriends {
   friend AlreadyDeclared;
};

(如下列範例所示) 純規範指示沒有實作供宣告虛擬的函式。因此,您可以指定純規範只在虛擬函式。請考量以下範例:

// class_member_declaration_syntax3.cpp
// compile with: /c
class StrBase {   // Base class for strings.
public:
   virtual int IsLessThan( StrBase& ) = 0;
   virtual int IsEqualTo( StrBase& ) = 0;
   virtual StrBase& CopyOf( StrBase& ) = 0;
};

上述程式碼會宣告抽象的基底類別,也就是設計成只能被用作基底類別更特定類別的類別。這種基底類別可以強制執行特定通訊協定或一組功能,藉由為 「 純粹的 」 的虛擬函式,使用純規範宣告一或多個虛擬函式。

繼承自的StrBase類別必須提供實作純虛擬函式。 沒有的話,也視為抽象基底類別。

抽象基底類別不能用來宣告物件中。繼承自型別的物件之前,比方說, StrBase ,都可以宣告,函式IsLessThan, IsEqualTo,以及CopyOf必須實作。(如需有關抽象基底類別的詳細資訊,請參閱抽象類別。)

請參閱

參考

類別成員