码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之单例模式

时间:2014-07-27 10:25:12      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

单例模式

目的:

Ensure a class only has one instance, and provide a global point of access to it.

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

C++实现 

在类中,定义一个私有静态成员对象;将构造函数也定义为私有的,保证类只有一个实现;提供一个公有静态成员函数,用来返回类内唯一的构造实例。

示例代码

bubuko.com,布布扣
//Singleton.h

#include <iostream>
using namespace std;

class Singleton
{
private:
    static Singleton *minstance;
    Singleton();
public:
    static Singleton *getInstance();
};

//Singleton.cpp

Singleton::Singleton()
{
    cout<<"private construct singleton"<<endl;
}

Singleton* Singleton::minstance =NULL; //必须在此处声明,否则报错

Singleton * Singleton::getInstance()
{
    if (minstance==NULL)
    {
        minstance=new Singleton();
    }
    
    return minstance;
}

//main.cpp
#include "Singleton.h"

void main()
{
    Singleton* singleton1 = Singleton::getInstance();
    Singleton* singleton2 = Singleton::getInstance();

    if (singleton1 == singleton2)
        fprintf(stderr,"singleton1 = singleton2\n");


    return;

}
View Code

 

参考资料

戏说Singleton模式

C++中的单例模式

3 C++设计模式--单例模式

 

设计模式之单例模式

标签:

原文地址:http://www.cnblogs.com/gjianw217/p/3870711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!