赞
踩
单例模式是一种常用的软件设计模式。 在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
class A;
A a; 这个系统中只能有一个A类对象
控制这个A类型的对象个数,单例模型。系统只有一个对象。
- #include <iostream>
- using namespace std;
-
- //单例模型
-
- class A {
- //为了不让用户可以自己创建对象 必须把构造函数私有化
- private:
- A() {
- a = new A;
- }
- //这里唯一一个public的接口设置为静态
- //用户便不需要创建对象直接类名进行访问
- public:
- static A* getInstance() {
- return a;
- }
- //成员变量也需要私有化 不然用户可以A::a
- //而且需要设置为静态 匹配上面接口的返回值
- private:
- static A* a;
- };
- //类外初始化
- A* A::a = NULL;
-
-
- //实现单例的步骤
- //1.构造函数私有化
- //2.增加静态私有的当前类的指针变量
- //3.提供静态的对外接口 可以让用户获得单例对象
- int main() {
- A::getInstance();
- return 0;
- }

单例模型分为懒汉式和饿汉式两种:
- #include <iostream>
- using namespace std;
-
- //单例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。