Commit 2d062511d357dfa68f7d94ca9d979555cdf351e7

Authored by Grzegorz Jabłoński
1 parent 3a6661da

Added virtual method call in destructor example

Showing 1 changed file with 28 additions and 0 deletions
examples10/destructor.cpp 0 → 100644
  1 +#include <iostream>
  2 +using namespace std;
  3 +
  4 +class base
  5 +{
  6 +public:
  7 + base() { cout << "base()" << endl;}
  8 + virtual void f() { cout << "base" << endl; };
  9 + void g() { this->f(); };
  10 + virtual ~base() { this->f(); cout << "~base()" << endl;};
  11 +};
  12 +
  13 +class derived : public base
  14 +{
  15 +int *ptr;
  16 +public:
  17 + derived() { ptr = new int(7); cout << "derived()" << endl;};
  18 + ~derived() { delete ptr; cout << "~derived()" << endl;};
  19 + void f() override { cout << "derived " << *ptr << endl; };
  20 +};
  21 +
  22 +int main()
  23 +{
  24 + base* ptr = new derived;
  25 + ptr -> g();
  26 + ptr -> f();
  27 + delete ptr;
  28 +}
... ...