R Справочное руководство по С++

R.11.5 Доступ к защищенным членам.

   


Назад  |  Вперёд

Друг или функция-член производного класса имеет доступ к защищенному статическому члену базового класса. Друг или функция-член производного класса могут получить доступ к защищенному нестатическому члену одного из своих базовых классов только через указатель, ссылку или объект производного класса (или любого класса, являющегося производным по отношению к нему). Рассмотрим пример:

           class B {
           protected:
             int i;
           };

           class D1 : public B {
           };

           class D2 : public B {
             friend void fr(B*, D1*, D2*);
             void mem(B*, D1*);
           };

           void fr(B* pb, D1* p1, D2* p2)
           {
             pb->i = 1;  // недопустимо
             p1->i = 2;  // недопустимо
             p2->i = 3;  // нормально (обращение через D2)
           }

           void D2::mem(B* pb, D1* p1)
           {
             pb->i = 1;  // недопустимо
             p1->i = 2;  // недопустимо
             i = 3;      // нормально (обращение через this)
           }

           void g(B* pb, D1* p1, D2* p2)
           {
             pb->i = 1;  // недопустимо
             p1->i = 2;  // недопустимо
             p2->i = 3;  // недопустимо
           }

Назад  |  Вперёд


OtDiatlovaOU
К началу книги

Оформление и дизайн книги OtDiatlovaOU.
Вся книга, архив.