请问单件模式为什么要用静态方法来实现?
不用不行吗?如果不用得话,用指针也可以去调用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();