好记性不如铅笔头

C && C++, 编程, 设计模式

一个简单的C++单例实现

最近重新拾起来了C++ GUI编程,发现C++很多语法都已经遗忘干净了。。。。这里笔记下一种最为简单的单例模式。
注意:
这种单例模式其实有风险,在多个单例同时进行初始化的时候会有问题,因此这里采取业务串行化方式来规避,即在程序初始化的时候显式初始化单例。

/*
Singleton_Demo.h
*/

class Singleton_Demo
{
public:
    static Singleton_Demo& getInstance(void);
    void init(void);

//简单单例实现
private:
    Singleton_Demo();
    Singleton_Demo(Singleton_Demo const&);
    Singleton_Demo& operator=(Singleton_Demo const&);
    ~Singleton_Demo();
};


/*
Singleton_Demo.c
*/

Singleton_Demo &Singleton_Demo::getInstance()
{
    static Singleton_Demo the_instance;
    return the_instance;
}

void Singleton_Demo::init()
{
    //do nth
}

Singleton_Demo::Singleton_Demo()
{
    //param init
}

业务初始化:

#include "Singleton_Demo.h"

int main(int argc, char *argv[])
{
    //......
    Singleton_Demo::getInstance().init();
    //......
}

 

发表评论

5 − 4 =

此站点使用 Akismet 来减少垃圾评论。了解我们如何处理您的评论数据