Friend class

A friend class in C++ can access the "private" and "protected" members of the class in which it is declared as a friend.[1]

Rationale

Friendship may allow a class to be better encapsulated by granting per-class access to parts of its API that would otherwise have to be public.[2] This increased encapsulation comes at the cost of tighter coupling between classes.[3]

Example

class B {
    friend class A; // A is a friend of B
 
private:
    int i;
};
 
class A {
public: 
    A(B b) {//Note that the object has to be passed as a parameter to the function
        b.i = 0; // legal access due to friendship
    }
};

Features

See also

References

External links