Введение в язык Си++



             

Друзья (friends)


Другом класса является функция не-член, которая может использовать имена закрытых членов. Следующий пример иллюстрирует различия между членами и друзьями:

class private { int a; friend void friend_set (private*,int); public: void member_set (int); };

void friend_set (private* p,int i) { p->a=i; }

void private.member_set (int i) { a = i; }

private obj;

friend_set (&obj,10);

obj.member_set (10);

Если описание friend относится к перегруженному имени или операции, то другом становится только функция с описанными типами параметров. Все функции класса cl1 могут быть сделаны друзьями класса cl2 с помощью одного описания

class cl2 { friend cl1; . . . };




Содержание  Назад  Вперед