private (C++)

構文

private:
   [member-list]
private base-class

解説

クラス メンバーのリストを前に置くと、private キーワードは、それらのメンバーがクラスのメンバー関数およびフレンドからのみアクセスできることを指定します。 これは、次のアクセス指定子またはクラスの末尾までで宣言されているすべてのメンバーに適用されます。

基底クラスの名前を指定すると、private キーワードは、基底クラスのパブリック、プロテクト メンバーが派生クラスのプライベート メンバーであることを指定します。

クラスのメンバーの既定のアクセスはプライベートです。 構造体または共用体のメンバーの既定のアクセスはパブリックです。

基底クラスの既定のアクセスは、クラスの場合はプライベートで、構造体の場合はパブリックです。 共用体に基底クラスを設定することはできません。

関連情報については、friendpublicprotectedクラス メンバーへのアクセスの制御のメンバー アクセス テーブルを参照してください。

/clr 固有

CLR 型では、C++ アクセス指定子のキーワード (publicprivate、および protected) が、アセンブリに関連する型およびメソッドの可視性に影響を与える可能性があります。 詳細については、「メンバー アクセス コントロール」を参照してください。

Note

/LN でコンパイルされるファイルは、この動作に影響を受けません。 この場合、すべてのマネージド クラス (パブリックかプライベート) が表示されます。

END /clr 固有

// 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
}

関連項目

クラス メンバーへのアクセス制御
キーワード