Share via


Friend Classes

C++ Specific —>

A friend class is a class all of whose member functions are friend functions of a class, that is, whose member functions have access to the other class's private and protected members.

Example

// Example of the friend class
class YourClass
{
friend class YourOtherClass;  // Declare a friend class
private:
   int topSecret;
};

class YourOtherClass
{
public:
   void change( YourClass yc );
};

void YourOtherClass::change( YourClass yc )
{
   yc.topSecret++;    // Can access private data
}

Friendship is not mutual unless explicitly specified as such. In the above example, member functions of YourClass cannot access the private members of YourOtherClass.

Friendship is not inherited, meaning that classes derived from YourOtherClass cannot access YourClass's private members; nor is it transitive, so classes that are friends of YourOtherClass cannot access YourClass's private members.

END C++ Specific