Advertisement
Ejejejejejjr

Порядок вызова деструкторов при множественном наследовании

Dec 28th, 2020
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4.  
  5. class Car
  6. {
  7. public:
  8.     Car()
  9.     {
  10.         std::cout << "Вызван конструктор класса Car" << std::endl;
  11.     }
  12.     ~Car()
  13.     {
  14.         std::cout << "Вызван деструктор класса Car" << std::endl;
  15.     }
  16. };
  17.  
  18. class Airplane
  19. {
  20. public:
  21.     Airplane()
  22.     {
  23.         std::cout << "Вызван конструктор класса Airplane" << std::endl;
  24.     }
  25.     ~Airplane()
  26.     {
  27.         std::cout << "Вызван деструктор класса Airplane" << std::endl;
  28.     }
  29. };
  30.  
  31. //при множественном наследовании конструкторы классов-потомков вызваются в порядке их наследования, для деструкторов наоборот
  32. //а потом вызывается конструктор самого класса-наследника
  33. class FlyingCar : public Airplane, public Car{
  34. public:
  35.     FlyingCar()
  36.     {
  37.         std::cout << "Вызван конструктор класса FlyingCar" << std::endl;
  38.     }
  39.     ~FlyingCar()
  40.     {
  41.         std::cout << "Вызван деструктор класса FlyingCar" << std::endl;
  42.     }
  43. };
  44.  
  45.  
  46. int main(int argc, char *argv[])
  47. {
  48.     setlocale(LC_ALL, "Rus");
  49.     srand(time(NULL));
  50.    
  51.    
  52.     FlyingCar car;
  53.    
  54.    
  55.     return 0;
  56. }
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement