【C++】单例模式

  • 工厂模式:一个类型可以批量生产无数个对象
  • 单例模式:一个类型只允许生产一个对象

单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中应用该模式的类只有一个实例化对象。

单例模式的类中

  • 提供私有属性下的构造函数(默认的拷贝构造就够了)
  • 包含一个本身这个类的私有的静态对象(指针或实例化的对象,几乎写的都是指针的)
  • 提供一个静态的公有函数去创建或获取这个私有的对象或者对象指针(一般是对象指针)

示例:

c++ 复制代码
#include<iostream>
using namespace std;

class Single {
private:
	Single(){}
	Single(const Single& s){}//防止对象在类外被创建和拷贝
	static Single* pSingle;
public:
	static Single* getSingle(){
		return pSingle;
	}
	void speak() {
		cout << "我是单例模式" << endl;
	}
};
Single* Single::pSingle = new Single;
int main() {
	Single* p = Single::getSingle();
	p->speak();
	delete p;
}
相关推荐
你怎么知道我是队长4 小时前
JavaScript 的控制语句介绍
开发语言·javascript·ecmascript
没用的阿_吉4 小时前
vs2022offline 生成
c++
RSTJ_16255 小时前
PYTHON+AI LLM DAY ONE HUNDRED AND THREE
开发语言·人工智能·python
qq_416409135 小时前
专业的openclaw推荐
c++
charlie1145141916 小时前
RK3506B: buildroot:出一份正规的最小 rootfs
开发语言·嵌入式·开源项目·rk3506b
Byron Loong6 小时前
【c#】Bitmap释放之 大象与蚊子
开发语言·c#
一个小猴子`6 小时前
CUDA全局内存
c++·cuda编程
ysa0510306 小时前
【板子】树上启发式合并
数据结构·c++·笔记·算法
音符犹如代码6 小时前
Java动态线程池:避坑原生线程池,吃透Dynamic-TP,手写一个Demo
java·开发语言
喜欢就别6 小时前
平均风险:Rényi DP 和零集中 DP
开发语言·r语言