language: C++11 (gcc-4.7.2)
date: 584 days 7 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
struct Base
{
  void operator delete(void * p) { std::cout << "delete B called\n"; ::operator delete(p); }
  virtual ~Base() {}
};
 
struct D : public Base
{
  void operator delete(void * p) { std::cout << "delete D called\n"; ::operator delete(p); }
  virtual ~D() { std::cout << "D Destructor called\n"; }
};
 
int main()
{
  Base* b=new D();
  delete b;
}