Advertisement
TwITe

Untitled

Dec 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 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.     // ~Base() {cout << endl <<  "base destructor"; };
  10. };
  11.  
  12. class Derived : public Base {
  13. public:
  14.     void print() override { // Пример полиморфизма: функция была объявлена ранее в родительском классе,
  15.         // однако при вызове функции print() из объекта типа Derived будет вызвана данная функция, а не
  16.         // родительского класса
  17.         cout << endl << "Derived class print function was called";
  18.     }
  19.     // ~Derived() {cout << endl << "derived destructor";};
  20. };
  21.  
  22. int main () {
  23.     Base* parent = new Base;
  24.     Derived child;
  25.     parent->print(); // Base class print function was called
  26.     cout << endl;
  27.     delete parent;
  28.     parent = &child; // Смена типа объекта на тип дочерного класса
  29.     parent->print(); // Derived class print function was called
  30.     return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement