首页 > 代码库 > 单例模式

单例模式

单例模式是一种开发模式。他在整个程序运行过程中,只能创建一个类,且提供一个函数接口。

这种思想就要求我们不能使用构造函数构造这个类,也不能使用拷贝函数拷贝这个类。

单例模式在开发过程中,是借助static 成员进行完成的。

技术分享单例模式
 1 #include <iostream>
 2 #include <memory>
 3 using namespace std;
 4 
 5 
 6 
 7 class Singleton
 8 {
 9 public:
10     static auto_ptr<Singleton> Getinstance()
11     {
12         if (instance_.get() == NULL)
13             instance_ = auto_ptr<Singleton>(new Singleton);
14         return instance_;
15     }
16     ~Singleton()
17     {
18         cout << "~Singleton ..." << endl;
19     }
20 private:
21     Singleton()
22     {
23         cout << "Singleton ..." << endl;
24     }
25     Singleton(const Singleton & other);
26     Singleton& operator=(const Singleton &other);
27      static auto_ptr<Singleton> instance_;
28 };
29 
30 auto_ptr<Singleton> Singleton::instance_;
31 
32 int main()
33 {
34     auto_ptr<Singleton> p1 = Singleton::Getinstance();
35 }

 

单例模式