A friend of a class X is a function or class that is granted the same access to X as the members of X. Functions declared with the friend specifier in a class member list are called friend functions of that class. Classes declared with the friend specifier in the member list of another class are called friend classes of that class.
A class Y must be defined before any member of Y can be declared a friend of another class.
You can declare an entire class as a friend.
If the class has not been previously declared, use an elaborated type specifier and a qualified type specifier to specify the class name.
If the friend class has been previously declared, you can omit
the keyword class, as shown in the following example:
class F;
class X
{
public:
X() {a=1; b=2;}
private:
int a, b;
friend F; // elaborated-type-specifier not required
};
![]()
Friend Scope
Friend Access
Member Functions