/* Corrects potential problems with destructors */ #include using namespace std; class Base { public: Base() { cout << "Base Constructor" << endl; } virtual ~Base() { cout << "Base Destructor" << endl; } }; class Derived : public Base { public: Derived() { cout << "Derived Constructor" << endl;} ~Derived() { cout << "Derived Destructor" << endl;} }; int main(){ Base *obj = new Derived(); delete obj; system("pause"); return 0; }