destructor.cpp
555 Bytes
#include <iostream>
using namespace std;
class base
{
public:
base() { cout << "base()" << endl;}
virtual void f() { cout << "base" << endl; };
void g() { this->f(); };
virtual ~base() { this->f(); cout << "~base()" << endl;};
};
class derived : public base
{
int *ptr;
public:
derived() { ptr = new int(7); cout << "derived()" << endl;};
~derived() { delete ptr; cout << "~derived()" << endl;};
void f() override { cout << "derived " << *ptr << endl; };
};
int main()
{
base* ptr = new derived;
ptr -> g();
ptr -> f();
delete ptr;
}