C++重载new,delete

来源:百度知道 编辑:UC知道 时间:2024/05/28 23:09:23
#include <iostream>
using namespace std;

class A
{
public:
A(){}
static void* operator new (size_t size)
{
A *temp = ::new A();
return temp;
}
static void operator delete (void *p)
{
::delete p;
}
};

void main()
{
A *p = new () A;
delete p;
}

怎么有100多个错误啊,啥解决了?

main里面代码的问题:
#include <iostream>
using namespace std;

class A
{
public:
A(){}
static void* operator new (size_t size)
{
A *temp = ::new A();
return temp;
}
static void operator delete (void *p)
{
::delete p;
}
};

void main()
{
A *p = new A;
delete p;
}

void main()
{
A *p = new A; // 改一下这里就OK了
delete p;
}

A *temp = ::new A();
::这个用的不对
应该是A*temp=new A::A();