温柔一刀,请试一下下面的类:
//------------------------------------------
//测试单类生成
//------------------------------------------
class OnlyOne
{
public:
static OnlyOne* install();
protected:
OnlyOne(){};
private:
static OnlyOne* One;
};
//--------------------------------
OnlyOne* OnlyOne::One=0;
//--------------------------------
OnlyOne* OnlyOne::install()
{
if(One==0){ One=new OnlyOne
};
return One;
};
对C++来讲,只要将构造函数放入保护或者私有部分,这时候系统就不会再允许在
堆栈或者数据段中生成类对象了。:)简单的重载new操作不行。