クラス メンバー
クラスはこれらの型のメンバーが存在する場合 :
クラス構造体共用体を含むクラス。(入れ子になったクラスの宣言 と 共用体 を参照してください)。
列挙。
型名。
[!メモ]
Friends はこの一覧にはクラス宣言に含まれるため含まれます。ただしクラスのスコープ内にないので実際のクラス メンバーではありません。
解説
クラスのメンバー リストにアクセス指定子と呼ばれるキーワードを使用して privateprotected と パブリック のセクションに分かれて場合があります。コロンは : アクセス指定子に従う必要があります。これらのセクションでは継続的である必要はありません。これらのキーワード。つまりいずれもメンバー一覧に複数回表示されることがあります。キーワードは次に示すアクセス指定子や右中かっこ (}) までのすべてのメンバー アクセスを指定します。
メンバー一覧のメンバー宣言は ; セミコロンで区切ります。クラス メンバー宣言の構文 を参照してください。
メンバー一覧の目的です :
特定のクラスのメンバーの完全なセットを宣言します。
さまざまなクラス メンバーに関連付けられているアクセス (パブリックプライベートまたはプロテクト) を指定します。
メンバー一覧の宣言では一度だけメンバーを宣言します ; メンバーの再宣言はできません。はエラー メッセージが生成されます。メンバー リストがメンバーの完全なセットであるため後続のクラス宣言が含まれる特定のメンバーをクラスに追加できません。
メンバーの宣言で初期化子を含めることはできません。初期化子を指定する場合は次のコードに示すようにエラー メッセージが生成されます :
// 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()
{
}
非静的データ メンバーのインスタンスが特定のクラス型のオブジェクトに対して作成されるためデータ メンバーの初期化を正しい方法はクラス コンストラクターを使用します。(コンストラクターは コンストラクター で説明します)。
特定のクラス型のすべてのオブジェクトの静的データ メンバーを 1 台の共有コピーがあります。静的データ メンバーを定義する必要がありファイルのスコープで初期化できます。(静的データ メンバーについての詳細については静的データ メンバー を参照してください)。次の例はこれらの初期化を実行する方法を示しています :
// 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 が定義されたクラス CanInit のメンバーであることを指定するに i を付ける必要があります。
Microsoft 固有の仕様 →
Microsoft C++ では静的で定数型の整数とクラス定義で初期化する定数の列挙のデータ メンバーができます。15C および C++ の Microsoft 拡張機能 を参照してください。