Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

public

public:
   [member-list]
public base-class

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.

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.

Managed Extensions for C++ Specific

In managed applications, 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 the Member Visibility and Class Visibility sections in the Managed Extensions for C++ Specification.

Note   Files compiled with /clr:noAssembly are not affected by this behavior. In this case, all managed classes (either public or private) will be visible.

END Managed Extensions for C++ Specific

Example

// keyword_public.cpp
class BaseClass
{
public:
   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 | C++ Keywords

Show:
© 2015 Microsoft