#include <iostream>
using namespace std;
class singleton
{
public:
void method(){ cout <<"singleton::method"<<endl; }
//...
static singleton *getInstance();
static singleton *instance;
private:
singleton(){}
};
singleton *singleton::instance = NULL;
singleton *singleton::getInstance()
{
if (instance == NULL)
{
instance = new singleton();
}
return instance;
}
class singleton2
{
public:
void method(){ cout <<"singleton2::method"<<endl; }
static singleton2 *getInstance();
private:
singleton2(){}
};
singleton2 *singleton2::getInstance()
{
static singleton2 instance; //线程安全
return &instance;
}
int main()
{
singleton *s1 = singleton::getInstance();
s1->method();
delete s1;
singleton2 *s2 = singleton2::getInstance();
s2->method();
return 0;
}
singleton 单例模式
最新推荐文章于 2022-04-21 23:38:19 发布