Алгоритмы и структуры данных на С++. Аксёнова Е.А - 36 стр.

UptoLike

36 Глава 3. Классы
int fb() {return b;} //2
int fc() {return c;} //3
int fd() {return d;} //4
};
В рассмотренном примере 1 и 4 верно, т. к. переменные a и d объяв-
лены public, 2 верно, т. к. переменная b объявлена protected, 3 невер-
но, т. к. переменная c объявлена private и доступна только внутри
класса или в друзьях класса.
Отметим, что контролируется доступ к членам класса, но не их
видимость.
int i;
class X
{
private:
int i;
};
class Y: public X
{
void f() { i++; } // ошибка
};
Переменная i объявлена private в классе X, поэтому возникает
ошибка. Если бы i была невидима в классе Y, то она рассматривалась
бы как глобальная переменная и ошибки бы не было.
3.3. Наследование
В языке С++ одни классы (производные) могут наследовать пе-
ременные и функции других классов (базовых). Также в языке C++
разрешено множественное наследование, т. е. класс может быть по-
рожден из любого числа базовых классов.
class base
{
36                                                  Глава 3. Классы


      int fb() {return b;} //2
      int fc() {return c;} //3
      int fd() {return d;} //4
 };

   В рассмотренном примере 1 и 4 верно, т. к. переменные a и d объяв-
лены public, 2 верно, т. к. переменная b объявлена protected, 3 невер-
но, т. к. переменная c объявлена private и доступна только внутри
класса или в друзьях класса.
   Отметим, что контролируется доступ к членам класса, но не их
видимость.

 int i;

 class X
   {
     private:
                int i;
      };

 class Y: public X
   {
     void f() { i++; } // ошибка
   };

   Переменная i объявлена private в классе X, поэтому возникает
ошибка. Если бы i была невидима в классе Y, то она рассматривалась
бы как глобальная переменная и ошибки бы не было.


                      3.3. Наследование

   В языке С++ одни классы (производные) могут наследовать пе-
ременные и функции других классов (базовых). Также в языке C++
разрешено множественное наследование, т. е. класс может быть по-
рожден из любого числа базовых классов.

class base
 {