#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
class Test {
int x;
public:
void* operator new(size_t size);
void operator delete(void*);
Test(int i) {
x = i;
cout << "Constructor called \\n";
}
~Test() { cout << "Destructor called \\n"; }
};
void* Test::operator new(size_t size)
{
void *storage = malloc(size);
cout << "new called \\n";
return storage;
}
void Test::operator delete(void *p )
{
cout<<"delete called \\n";
free(p);
}
int main()
{
Test *m = new Test(5);
delete m;
return 0;
}
new called Constructor called delete called Destructor called
new called Constructor called Destructor called delete called
Constructor called new called Destructor called delete called
Constructor called new called delete called Destructor called
This question is part of this quiz :
C++ Operator Overloading