-
Notifications
You must be signed in to change notification settings - Fork 6
Полиморфизм, понятие абстрактного класса. Дружественные связи.
Pandas edited this page Jun 16, 2017
·
1 revision
Взаимодействие объектов – один объект даёт доступ к всем своим членам другому, но не наоборот. Используется, когда один класс должен отвечать за всю работу другого класса.
class B; //форвард-объявление
class A {};
class B
{
friend class A;
private:
int abs;
public:
int getabs();
};
Все члены класса А имеют доступ ко всем членам класса Б. Можно ограничить доступ: чтобы только определенный метод был другом класса Б. Этот вариант более правилен – при изменении класса Б в А нужно изменять только один метод.
class B;
class A { int f(); };
class B
{
friend int A::f();
};
Дружба – не наследуется и не транзитивна. Если от класса Б породить другой класс, то для него класс А уже не будет другом. Если класс А дружит с классом С, то класс Б не дружит с С.