类的构造函数属性置为private,同时提供static成员函数getInstance,
在函数中new一个新对象,然后返回对象指针或者引用。
这样实现的类可以保证只可以在堆上分配对象
Class A{
Static A* Instance;
Public:
A* GetInstance()
{
if(Instance == NULL)
{ return new A;}
}
Private:
A(){};
~A(){};
}
在C++中如何限制一个类对象只在栈上分配?
new操作符显示重载为私有
class stackonly { private: void * operator new(size_t Size) { } };