最近闲来无事,回忆了最简单的单例模式。经过了一个小时的尝试加修改,终于写好了。下面分享一下我犯傻的地方(ps:这次的单例模式不涉及加锁之类,只是最基本的单例模式)
废话不多说,先上代码:
#include<iostream>
using namespace std;
class singleton
{
private:
singleton()
{
cout<<"singleton created"<<endl;
}
static singleton* s;
public:
static singleton* getsingleton() //错误示例:singleton* getsingleton()
{
if(!s)
s=new singleton(); //错误示例:return new singleton();
return s;
}
~singleton()
{
s=NULL;
cout<<"singleton destroyed"<<endl;
}
};
singleton* singleton::s=NULL; //错误示例:static
int main()
{
singleton* s