#include iostream
using namespace std;
class Base
{
public:
Base();
void* operator new(size_t size, char const * file, int line);
void operator delete(void* p);
};
class Derived :
public Base
{
public:
Derived();
};
Base::Base()
{
cout << "Base::Base()" <<>
}
void* Base:perator new(size_t size, char const * file, int line)
{
void* p = malloc(size);
//
cout << "New called! file: " <<>
" <<>
//
return p;
}
void Base:perator delete(void* p)
{
//
cout << "Delete called! p: " <<>
//
free(p);
}
Derived:erived()
{
cout << "Derived:erived()" <<>
}
int main()
{
Base* x = new(__FILE__, __LINE__) Derived;
delete x;
return 0;
}
