Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Base {
- public:
- virtual void print() {
- cout << endl << "Base class print function was called";
- }
- // ~Base() {cout << endl << "base destructor"; };
- };
- class Derived : public Base {
- public:
- void print() override { // Пример полиморфизма: функция была объявлена ранее в родительском классе,
- // однако при вызове функции print() из объекта типа Derived будет вызвана данная функция, а не
- // родительского класса
- cout << endl << "Derived class print function was called";
- }
- // ~Derived() {cout << endl << "derived destructor";};
- };
- int main () {
- Base* parent = new Base;
- Derived child;
- parent->print(); // Base class print function was called
- cout << endl;
- delete parent;
- parent = &child; // Смена типа объекта на тип дочерного класса
- parent->print(); // Derived class print function was called
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement