プライベート (C++)
private:
[member-list]
private base-class
解説
クラス メンバーの一覧を指定するとprivate のキーワードはメンバーがクラスのメンバー関数と Friends からのみアクセスできることを指定します。これはクラスのアクセス指定子または末尾まで宣言されているすべてのメンバーに適用されます。
基本クラスの名前を指定するとprivate のキーワードは基本クラスのパブリック メンバーとプロテクト メンバーは派生クラスのプライベート メンバーであることを指定します。
クラスのメンバーの既定のアクセスはプライベートです。構造体または共用体のメンバーの既定のアクセスはパブリックです。
基本クラスの既定のアクセスは構造体とクラスのパブリック クラスはプライベートです。共用体は基本クラスを指定することはできません。
関連情報についてはクラス メンバーへのアクセスの制御 の Friendパブリックプロテクト およびメンバー アクセスの表を参照してください。
/clr の指定
CLR 型では C++ のアクセス指定子のパブリック キーワード (privateおよびprotected)はアセンブリに対して型およびメソッドの表示に影響を及ぼすことがあります。詳細については、「型およびメンバーの表示」を参照してください。
[!メモ]
/LN でコンパイル ファイルではこの動作の影響を受けません。この場合すべてのマネージ クラス (public または private) 表示されます。
使用例
// keyword_private.cpp
class BaseClass {
public:
// privMem accessible from member function
int pubFunc() { return privMem; }
private:
void privMem;
};
class DerivedClass : public BaseClass {
public:
void usePrivate( int i )
{ privMem = i; } // C2248: privMem not accessible
// from derived class
};
class DerivedClass2 : private BaseClass {
public:
// pubFunc() accessible from derived class
int usePublic() { return pubFunc(); }
};
int main() {
BaseClass aBase;
DerivedClass aDerived;
DerivedClass2 aDerived2;
aBase.privMem = 1; // C2248: privMem not accessible
aDerived.privMem = 1; // C2248: privMem not accessible
// in derived class
aDerived2.pubFunc(); // C2247: pubFunc() is private in
// derived class
}