【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;
}
相关推荐
水饺编程11 分钟前
Windows 编程基础:wsprintf 函数
c语言·c++·windows·visual studio
大地的一角13 分钟前
(C++)自定义功能基础汇总
开发语言·c++
Hello eveybody15 分钟前
什么是动态规划(DP)?(C++版)
c++·动态规划
skywalk816330 分钟前
ete3 和 ete4 是用于系统发育树(Phylogenetic Tree)分析、可视化及操作的Python科学计算库
开发语言·python
橘色的喵33 分钟前
现代C++嵌入式消息总线的回调优化: 从 std::function 到零开销分发
c++·function
FunW1n38 分钟前
TMF 框架 Frida Hook 脚本逻辑深度解析
开发语言
wearegogog12344 分钟前
基于SIFT、DoG与RANSAC的全景图像拼接MATLAB实现
开发语言·matlab
yblackd1 小时前
UnrealEngine Win风格 窗口选择打开文件
c++·ue5·虚幻
橘色的喵1 小时前
C++17 vs C 编译产物体积:工业嵌入式场景的实测与分析
c语言·c++·c++17
逍遥德1 小时前
如何学编程之理论篇.03.如何做数据库表结构设计?
开发语言·数据库·性能优化·代码规范·代码复审