Friend-функции, friend-классы C++ - дружественные функции и дружественные классы

Спецификаторы доступа класса позволяют указывать, могут ли функции вне определенного вами класса обращаться к его элементам. Может, однако, случиться, что вам потребуется обеспечить определенной функции или классу доступ к элементам вашего класса, специфицированным как private или protected.

Для обеспечения такой возможности используется ключевое слово friend.
Вы можете разрешить элементам другого класса (anotherClass) полный доступ к элементам вашего класса (myClass), объявленным как private или protected, включив в определение вашего класса описание friend. Например:

class myClass
{
friend class anotherClass; // дружественный класс
};

Аналогично вы можете разрешить обычной функции или функции-элементу другого класса полный доступ к элементам класса с помощью описания friend. Например:

class myClass
{
//  дружественный метод
friend void anotherClass::MemberFuncName(int);
// дружественная функция
friend void regularFuncName(double);
};

источник (спасибо что есть=))= http://codingrus.ru/readarticle.php?arti...