例子
#include <iostream>
class test
{
private:
public:
void* operator new(size_t size)
{
std::cout << "reload new\n";
return malloc(size);
}
void operator delete(void* ptr)
{
std::cout << "reload del\n";
return free(ptr);
}
test() = default;
~test() = default;
};
void* operator new(size_t size)
{
std::cout << "g reload new\n";
return malloc(size);
}
void operator delete(void* ptr)
{
std::cout << "g reload del\n";
return free(ptr);
}
int main(int argc, char const* argv[])
{
test* t = new test;
delete t;
int* i = new int(4);
delete i;
return 0;
}
输出
reload new
reload del
g reload new
g reload del