自用单例版 Singleton

来源:互联网 发布:中超数据直播系统 编辑:程序博客网 时间:2024/06/05 18:31

写游戏要用到单例设计模式,现结合各种方案整合一个简单的版本。

它利用了:静态局部变量在第一次使用时初始化,并不会销毁直到程序退出。

===================================================

模版类

template <class T>
class Singleton {
public:
static T& getInstance() {
static T _instance;
return _instance;
}
protected:

Singleton() {} // Constructor

virtual ~Singleton() {}

Singleton(const Singleton<T>&); //不实现,Don't Implement
Singleton<T>& operator= (const Singleton<T> &); //不实现,前可void

};

template <class T>class Singleton {public:static T& getInstance() {static T _instance;return _instance;}protected:Singleton() {} // Constructorvirtual ~Singleton() {}Singleton(const Singleton<T>&); Singleton<T>& operator= (const Singleton<T> &); };

===========================================================

继承类

class Test : public Singleton<Test> {public:void foo();private:Test();~Test();};
==========================================================
使用
</pre><pre name="code" class="cpp">Test::instance().foo(); 



0 0
原创粉丝点击