#include <iostream>
#include <cstdlib>
using namespace std;
class Base
{
public:
Base()
{
cout<<"Constructor"<<endl;
}
Base(const Base& rhs)
{
cout<<"Copy constructor"<<endl;
}
Base* Clone()
{
return new Base(*this);
}
void* operator new(size_t size)
{
void* p=malloc(size);
cout<<"Inside new"<<endl;
return p;
}
};
int main()
{
Base b1;
Base* ptr=b1.Clone();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEJhc2UKewoJcHVibGljOgoJQmFzZSgpCgl7CgkJY291dDw8IkNvbnN0cnVjdG9yIjw8ZW5kbDsKCX0KCUJhc2UoY29uc3QgQmFzZSYgcmhzKQoJewoJCWNvdXQ8PCJDb3B5IGNvbnN0cnVjdG9yIjw8ZW5kbDsKCX0KCSBCYXNlKiBDbG9uZSgpCgl7CgkJcmV0dXJuIG5ldyBCYXNlKCp0aGlzKTsKCX0KCXZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkKCXsKCQl2b2lkKiBwPW1hbGxvYyhzaXplKTsKCQljb3V0PDwiSW5zaWRlIG5ldyI8PGVuZGw7CgkJcmV0dXJuIHA7Cgl9Cn07CgppbnQgbWFpbigpCnsKCUJhc2UgYjE7CglCYXNlKiBwdHI9YjEuQ2xvbmUoKTsKCXJldHVybiAwOwp9