| Bruce Eckel's Thinking in C++, 2nd Ed | Contents | Prev | Next | 
//: C15:Pvdest.cpp
// Pure virtual destructors
// require a function body.
#include <iostream>
using namespace std;
class Base {
public:
  virtual ~Base() {
    cout << "~Base()" << endl;
  }
};
class Derived : public Base {
public:
  ~Derived() {
    cout << "~Derived()" << endl;
  }
};
int main() {
  Base* bp = new Derived; // Upcast
  delete bp; // Virtual destructor call