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

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

   
Рассмотрев основные принципы работы деструкторов при наследовании,
приведем программу для работы с объектами класса 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 был
создан в блоке, поэтому его "время жизни" ограничено этим блоком!

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий