A friend class in C++ can access the private and protected members of the class in which it is declared as a friend.
Contents
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. This increased encapsulation comes at the cost of tighter coupling due to interdependency between the classes.
Properties
A
is a friend of class B
, class B
is not automatically a friend of class A
.A
is a friend of class B
, and class B
is a friend of class C
, class A
is not automatically a friend of class C
.Base
is a friend of class X
, subclass Derived
is not automatically a friend of class X
; and if class X
is a friend of class Base
, class X
is not automatically a friend of subclass Derived
.References
Friend class Wikipedia(Text) CC BY-SA