Share via


private

C++ Specific

private: [member-list]

private base-class

When preceding a list of class members, the private keyword specifies that those members are accessible only from member functions and friends of the class. 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 private keyword specifies that the public and protected members of the base class are private members 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 related information, see friend, public, protected, and the member-access table in Controlling Access to Class Members.

Example

// Example of the private keyword
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; }   // Error: privMem not accessible
                        //    from derived class
};

class DerivedClass2 : private BaseClass
{
public:
   // pubFunc() accessible from derived class
   int usePublic() { return pubFunc(); }
};

void main()
{
   BaseClass aBase;
   DerivedClass aDerived;
   DerivedClass2 aDerived2;
   aBase.privMem = 1;     // Error: privMem not accessible
   aDerived.privMem = 1;  // Error: privMem not accessible
                          //    in derived class
   aDerived2.pubFunc();   // Error: pubFunc() is private in
                          //    derived class
}

END C++ Specific