Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 55 стр.

UptoLike

Составители: 

55
p
rotected
p
rotected
p
rotected
p
rotected
p
rotected
p
rivate
p
rivate
p
rivate
p
rivate * не
д
ост
у
пны
Следующий пример иллюстрирует приведенные в таблице правила транс-
формации области видимости компонент при наследовании.
// Листинг 24. Примеры изменения области видимости компонент при наследовании
class A
{ public:
int x;
};
class B
{protected:
int y;
};
class C
{public:
int z;
};
class D: public A, private B, C
{…
};
main()
{D d;
d.x=5; //компонент х в классе D имеет область видимости public (2-е правило
//в таблице 1)
//d.y=1; Ошибка!!! компонент y в классе D имеет область видимости private
// (8-е правило в таблице 1)
//d.z=0; Ошибка!!! компонент z в классе D имеет область видимости private
// (1-е правило в таблице
1)
}
Рассмотрим пример создания и использования иерархии классов с использова-
нием механизма наследования.
//Листинг 25. Программабаза данных по учету студентов”, использующая механизм
//наследования
#include <iostream.h>
#include <string.h>
class Subject //класс, описывающий свойства некоторого субъекта
{ protected:
char name[20]; //имя субъекта
int age; //возраст
char adress[30]; //адрес
public:
     protected        protected         protected           protected
     protected         private           private             private
      private             *                      не доступны
      Следующий пример иллюстрирует приведенные в таблице правила транс-
формации области видимости компонент при наследовании.
    // Листинг 24. Примеры изменения области видимости компонент при наследовании
        class A
        { public:
             int x;
          …
        };
        class B
        {protected:
             int y;
          …
        };
        class C
        {public:
             int z;
          …
        };
        class D: public A, private B, C
        {…
        };
        main()
        {D d;
          d.x=5; //компонент х в классе D имеет область видимости public (2-е правило
                    //в таблице 1)
           //d.y=1; Ошибка!!! компонент y в классе D имеет область видимости private
                    // (8-е правило в таблице 1)
        //d.z=0; Ошибка!!! компонент z в классе D имеет область видимости private
                    // (1-е правило в таблице 1)
}
    Рассмотрим пример создания и использования иерархии классов с использова-
нием механизма наследования.
//Листинг 25. Программа “база данных по учету студентов”, использующая механизм
//наследования
       #include 
       #include 
       class Subject //класс, описывающий свойства некоторого субъекта
       { protected:
         char name[20]; //имя субъекта
         int age;         //возраст
         char adress[30]; //адрес
        public:

                                             55