class A
{
public:
static void *operator new(size_t size);
static void operator delete(void *phead);
//static void *operator new[](size_t size);
//static void operator delete[](void *phead);
//int m_i = 0;
A()
{
cout << "执行A::A()" << endl;
}
~A()
{
cout << "执行A::~A()" << endl;
}
};
void *A::operator new(size_t size)
{
A *point = (A *)malloc(size);
//A *point = nullptr;
cout << "执行*A::operator new()" << endl;
return point;
}
void A::operator delete(void *phead)
{
cout << "执行A::operator delete()" << endl;
free(phead);
}
//void *A::operator new[](size_t size)
//{
// A *point = (A *)malloc(size);
// //A *point = nullptr;
// return point;
//}
//void A::operator delete[](void *phead)
//{
// free(phead);
//}
void run()
{
A *pa = new A();
delete pa;
}
C++ new和delete对象
最新推荐文章于 2024-07-19 23:11:36 发布