Шаг 25.
Пример программы с использованием наследуемых классов

    На этом шаге мы приведем пример программы с использованием наследуемых классов.

    Рассмотрев основные принципы работы деструкторов при наследовании, приведем программу для работы с объектами класса star:

//OOP25_1.СРР  - наследование классов и их деструкторы.
#include   "star.cpp" //  Определение класса star.
void main ()
{  
  star A(5,7,4);   // Создается невидимая звезда A.
  star D(38,12,3); // Создается невидимая звезда D.
  A.show();        // Изобразить звезду A на экране.
  getch();         // Ждать нажатия клавиши.
  D.show();        // Изобразить звезду D на экране.
  getch();
  A.move(10,15);   // Переместить  звезду A.
  getch();
  D.vary(3);       // Изменить размер лучей звезды D.
  getch ();        // Ждать нажатия клавиши.
}
Текст этой программы можно взять здесь.

    Обратите внимание на то, что после выполнения последней функции getch(); все звезды исчезают с экрана. Это объясняется тем, что при уничтожении объектов A и D автоматически вызываются их деструкторы, которые содержат обращение к функции hide(), осуществляющей "скрытие" звезды.

    Изменим последнюю программу, добавив в нее блок, в котором создадим звезду C:

//OOP25_2.СРР  - наследование классов и их деструкторы.
#include   "star.cpp"   //  Определение класса star.
void main ()
{  
 star A(5,7,4);  // Создается невидимая звезда A.
 star D(38,12,3);// Создается невидимая звезда D.
 A.show();       //  Изобразить звезду A на экране.
 getch();        //  Ждать  нажатия клавиши.
 D.show();       // Изобразить звезду D на экране.
 getch();
 {
   star C(13,13,2);
   C.show();
   getch();
 } //Объект C автоматически удален!!!
 A.move(10,15);   // Переместить  звезду A.
 getch();
 D.vary(3);       // Изменить размер лучей звезды D.
 getch ();        // Ждать нажатия клавиши.
}
Текст этой программы можно взять здесь.

    Обратите внимание на то, что после выхода из блока звезда C исчезнет с экрана, то есть этот объект будет автоматически уничтожен! Этот факт объясняется тем, что объект C был создан в блоке, поэтому его "время жизни" ограничено этим блоком!

    Со следующего шага мы начнем рассматривать множественное наследование.




Предыдущий шаг Содержание Следующий шаг