Advertisement
TwITe

Untitled

Dec 23rd, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Base {
  5. public:
  6.     virtual void print() {
  7.         cout << endl <<  "Base class print function was called";
  8.     }
  9.  
  10.     ~Base() {
  11.         cout << endl << "Base destructor";
  12.     }
  13. };
  14.  
  15. class Derived : public Base {
  16. public:
  17.     void print() override { // Пример полиморфизма: функция была объявлена ранее в родительском классе,
  18.         // однако при вызове функции print() из объекта типа Derived будет вызвана данная функция, а не
  19.         // родительского класса
  20.         cout << endl << "Derived class print function was called";
  21.     }
  22.  
  23.     ~Derived() {
  24.         cout << endl << "Derived destructor";
  25.     }
  26. };
  27.  
  28. int main () {
  29.     Base* parent = new Base;
  30.     Derived child;
  31.     parent->print(); // Base class print function was called
  32.     cout << endl;
  33.     delete parent;
  34.     parent = &child; // Смена типа объекта на тип дочерного класса
  35.     parent->print(); // Derived class print function was called
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement