你好,游客 登录 注册 搜索
背景:
阅读新闻

C++知识点:单例模式的简单实现

[日期:2016-09-13] 来源:Linux社区  作者:terence1212 [字体: ]

单例模式是最常见,也是使用最广泛的一种设计模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。

单例模式的实现方法有很多种,本文只给出一个最简单的实现,如下:

(1) 使用一个类的私有静态指针指向该类的唯一一个实例
(2) 使用一个共有的静态方法获取该实例。

#include "stdafx.h"
#include <iostream>
using namespace std;
class Singleton
{
public:
    ~Singleton()
    {
        if (singleton!=NULL)
        {
            delete singleton;
        }
    }
    static Singleton* getSingleton();//全局访问点
private:
    Singleton(){
    }
    static Singleton* singleton;//指向该类唯一实例的一个静态指针
};
//静态成员必须在类外初始化
Singleton * Singleton::singleton = NULL;
Singleton* Singleton::getSingleton(){
    if (singleton == NULL)//如果该唯一实例不存在,就创建一个
    {
        singleton = new Singleton();
    }
    else cout<<"已存在一个实例"<<endl;
    return singleton;
}

调用和测试

int _tmain(int argc, _TCHAR* argv[])
{
    Singleton* mySingleton = Singleton::getSingleton();//获得了该类的唯一一个实例
    Singleton* mySingleton2 = Singleton::getSingleton();//输出“已存在一个实例”,此时mySingleton和mySingleton2同指向该类的唯一实例
    return 0;
}

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-09/135170.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款