Введение в программирование

       

Дружественные классы


Объявление дружественного класса позволяет всем его методам получить доступ ко всем переменным и методам другого класса.

Например:

class A {public: int Fx();} class B {public: friend class A; private: }

Дружественный класс или член класса будет доступен только в том случае, если он был объявлен в области видимости самого класса или ранее во внешней области видимости, внутри которой располагается область видимости, содержащая объявление класса с объявлениями друзей класса.

Например:

class A {public: // Класс расположен во внешней // области видимости int Fx1(); } namespace classB { class B {public: friend class A; friend class C; private: } class C { public: // Класс расположен в том же // пространстве имен int Fx2(); } }

Дружественные классы не наследуются, и их дружественность не является транзитивной.

Например:

class A {int Fx();} class B {friend class A;} class C {friend class B;} // Класс А не является // дружественным классу C class D : public B {} // Класс А не является // дружественным классу D


Содержание раздела