Dec 20, 2012 22:34
Друзья - это функции, не являющиеся функциями-членами и тем не менее имеющие доступ к защищённым и закрытым членам класса.
Они должны быть объявлены в теле класса как friend.
"Дружественная" функция может обращаться к любым полям и функциям-членам класса "друга".
Существуют также
Друзья классы -
Если класс A - друг класса B, то все его собственные (не унаследованные) функции-члены могут обращаться к любым членам класса B.
Однако в C++ не действует правило «друг моего друга - мой друг».
По действующему стандарту C++ вложенный класс не имеет прав доступа к закрытым членам объемлющего класса и не может быть объявлен его другом (последнее следует из определения термина друг как нечлена класса).
© Лекции по С++