Friendship and inheritance
Friend functions
In principle, private and protected members of a class cannot be accessed from outside the same class in which
they are declared.
However, this rule does not affect friends.
Friends are functions or classes declared as such.
If we want to declare an external function as friend of a class, thus allowing this function to have access to the
private and protected members of this class, we do