Бьерн Страуструп - Язык программирования С++. Главы 5-8
Страница 43. Контроль доступа



6.6 Контроль доступа

 Член класса может быть частным (private), защищенным (protected)
 или общим (public):
     Частный член класса X могут использовать только функции-члены и
     друзья класса X.
     Защищенный член класса X могут использовать только функции-члены
     и друзья класса X, а так же функции-члены и друзья всех
     производных от X классов (см. $$5.4.1).
     Общий член можно использовать в любой функции.
 Эти правила соответствуют делению обращающихся к классу функций на три
 вида: функции, реализующие класс (его друзья и члены), функции,
 реализующие производный класс (друзья и члены производного класса) и
 все остальные функции.
     Контроль доступа применяется единообразно ко всем именам. На
 контроль доступа не влияет, какую именно сущность обозначает имя.
 Это означает, что частными могут быть функции-члены, константы и т.д.
 наравне с частными членами, представляющими данные:

             class X {
             private:
               enum { A, B };
               void f(int);
               int a;
             };

             void X::f(int i)
             {
               if (i<A) f(i+B);
               a++;
             }

             void g(X& x)
             {
               int i = X::A;     // ошибка: X::A частный член
               x.f(2);           // ошибка: X::f частный член
               x.a++;            // ошибка: X::a частный член
             }

 
« Предыдущая статья   Следующая статья »