C++单利模式
来源:互联网 发布:linux 定时唤醒 编辑:程序博客网 时间:2024/05/17 22:39
C++单利模式
1. 实现单利模式是,通常会使用一个静态指针来指向一个创建在堆上的实例,实例可以等到第一次使用时创建,因为创建在堆上所以要手动释放内存。例如:
Singleton* getInstance()
{
if (instance ==NULL)
instance= new Singleton();
return instance;
}
2. 当然也可以使用静态成员变量来实现,直接放回静态成员变量的地址就行,这样就可以不用担心内存释放问题。但这样会在程序一开始就创建实例,可能有时后用不到实例,但会也会创建实例。
3. 使用函数的静态成员来实现,这样既可以等到使用时才创建对象,也创建在栈上,不用担心内存释放问题。如下:
#include <iostream>using namespace std;;class Singleton{public: static Singleton* GetInstance() { static Singleton Instance; return &Instance; } void GetData(char *Buffer) { strcpy(Buffer, Data); } ~Singleton() { cout << "destructor Singleton Instance." << endl; }protected: Singleton() :Data{ "Singleton Test." } { cout << "Init Singleton Instance." << endl; }private: char Data[20];};int main(){ char Temp[50] = {}; cout << "begin test" << endl; Singleton::GetInstance()->GetData(Temp); cout << Temp << endl; return 0;}
结果:
1 0
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 单利模式
- 设计模式--单利模式
- 设计模式-单利模式
- 三种单利模式
- 三种单利模式
- Win10总是弹出Windows安全窗口要求输入用户名和密码的解决方法
- Idea下,JSP语句不识别的解决
- CODEVS_3027 线段覆盖2
- 蓝桥杯 入门训练 Fibonacci数列 JAVA
- GCC学习笔记(二)--静态库与共享库
- C++单利模式
- 山区修路
- GreenDao 3.1 应用
- Extreme (II)
- java中的接口(interface)
- Retrofit 的使用
- CODEVS 1166 矩阵取数游戏
- qscoj 66 ||2017 UESTC Training for Data Structures D(离线+树状数组)
- 算法设计Week9 LeetCode Algorithms Problem #121. Best Time to Buy and Sell Stock