单例模式是最简单也是比较常用的一个模式,通常用于资源的管理类。
C++实现单例模式很简单:
#include <iostream>
using namespace std;
class SingleObj
{
public:
static SingleObj& getInstance()
{
static SingleObj s_singleObj;
return s_singleObj;
}
private:
SingleObj() = default;
SingleObj(const SingleObj& s) = delete;
SingleObj(SingleObj&& s) = delete;
SingleObj& operator=(const SingleObj& s) = delete;
SingleObj& operator=(const SingleObj&& s) = delete;
~SingleObj() = default;
};
int main ()
{
SingleObj& singleObj1 = SingleObj::getInstance();
SingleObj& singleObj2 = SingleObj::getInstance();
cout<<&singleObj1<<endl;
cout<<&singleObj2<<endl;
return 0;
}
运行程序输出:
0x4030c0
0x4030c0可见对象singleObj1和s