首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教单件模式为什么要用静态方法来实现

2012-02-12 
请问单件模式为什么要用静态方法来实现?不用不行吗?如果不用得话,用指针也可以去调用Instance()啊迷惑中[

请问单件模式为什么要用静态方法来实现?
不用不行吗?如果不用得话,用指针也可以去调用Instance()啊
迷惑中

[解决办法]
当我有一个 T 类型的指针 T* p; 要通过 p 调用成员方法 p-> Instance(),必须是在 p 已经指向一个 T 类型对象的前提下。
T t;
p = &t;
或者
p = new T();

这时,已经有(至少)一个 T 对象存在了,且这个对象由调用者手工创建,那么,如何防止调用者创建第二个 T t2; 呢?不能防止,如何保证 Singleton 的单件语意?
[解决办法]
class signel
{
public :

static signel* GetInstande()
{
static signel* obj = new signel; // 这个只会运行一次,所以无论调用多少次,都是得到同一个obj
return obj;
}

private :
signel(){};

};

int main()
{
signel* p = signel::GetInstande();

热点排行