(一) 只能堆上
#include <cstdio>
class A
{
public:
static A* Create()
{
return new A();
}
void Destory()
{
delete this;
}
protected:
A(){};
~A(){};
};
int main()
{
A *a = A::Create();
printf("0x%08x\n",a);
if(a!=NULL)
a->Destory();
return 0;
}
(二)只能栈上
#include <cstdio>
class A
{
public:
A(){};
~A(){};
private:
void* operator new(size_t size)
{
}
void operator delete(void *p)
{
}
};
int main()
{
A a;
return 0;
}