class Base
{
public:
static Base *getInstance()
{
if (0==s) //s为0才调用构造函数,实例化一次成功后,s不再为0,除非将其释放掉,才能开始下一次实例化
s = new Base();
return s;
}
private:
Base() {}
static Base *s;
};
Base *Base::s = 0; //初始化一次
void main()
{
Base *s = Base::getInstance();//第一次如果实例化成功,那么s不再为0
Base *s1 = Base::getInstance();//实例化不成功,因为 s!=0,无法调用构造函数
}