public (C++)public (C++)


public base-class


前に、クラス メンバーの一覧と、publicキーワードは、それらのメンバーが任意の関数からアクセスできることを指定します。When preceding a list of class members, the public keyword specifies that those members are accessible from any function. これは、次のアクセス指定子またはクラスの末尾までで宣言されているすべてのメンバーに適用されます。This applies to all members declared up to the next access specifier or the end of the class.

基底クラスの名前、publicキーワードを指定、基底クラスのパブリックおよびプロテクト メンバーはパブリックとプロテクト メンバーはそれぞれ、派生クラスの。When preceding the name of a base class, the public keyword specifies that the public and protected members of the base class are public and protected members, respectively, of the derived class.

クラスのメンバーの既定のアクセスはプライベートです。Default access of members in a class is private. 構造体または共用体のメンバーの既定のアクセスはパブリックです。Default access of members in a structure or union is public.

基底クラスの既定のアクセスは、クラスの場合はプライベートで、構造体の場合はパブリックです。Default access of a base class is private for classes and public for structures. 共用体に基底クラスを設定することはできません。Unions cannot have base classes.

詳細については、次を参照してくださいプライベート保護フレンド、とでメンバー アクセス テーブルクラス メンバーへのアクセスの制御.For more information, see private, protected, friend, and the member-access table in Controlling Access to Class Members.

/clr 固有/clr Specific

CLR 型では、C++ アクセス指定子のキーワード (publicprivate、およびprotected) 型およびアセンブリに関連メソッドの可視性に影響を与えることができます。In CLR types, the C++ access specifier keywords (public, private, and protected) can affect the visibility of types and methods with regard to assemblies. 詳細については、次を参照してください。メンバー アクセス コントロールします。For more information, see Member Access Control.


ファイルがコンパイルされた/LNこの動作の影響は受けません。Files compiled with /LN are not affected by this behavior. この場合、すべてのマネージド クラス (パブリックかプライベート) が表示されます。In this case, all managed classes (either public or private) will be visible.

END /clr 固有END /clr Specific


// keyword_public.cpp
class BaseClass {
   int pubFunc() { return 0; }

class DerivedClass : public BaseClass {};

int main() {
   BaseClass aBase;
   DerivedClass aDerived;
   aBase.pubFunc();       // pubFunc() is accessible
                          //    from any function
   aDerived.pubFunc();    // pubFunc() is still public in
                          //    derived class

関連項目See also

クラス メンバーへのアクセス制御Controlling Access to Class Members