C++知识点:单例模式的简单达成
发布时间:2021-11-18 16:29:53 所属栏目:教程 来源:互联网
导读:单例模式是最常见,也是使用最广泛的一种设计模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。 单例模式的实现方法有很多种,本文只给出一个最简单的实现,如下: (1) 使用一个类的私有静态指针指向该类的
单例模式是最常见,也是使用最广泛的一种设计模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。 单例模式的实现方法有很多种,本文只给出一个最简单的实现,如下: (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; } ![]() (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |