【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;
}
相关推荐
天空'之城10 小时前
Linux 系统编程 10:线程同步
linux·开发语言·系统编程·线程同步
Vect__10 小时前
Go 数据结构 slice 深度剖析
开发语言·数据结构·golang
想你依然心痛10 小时前
AtomCode在Python数据科学项目中的使用体验:从数据分析到可视化
开发语言·python·数据分析
满天星830357710 小时前
【Qt】控件(二) (geometry及与frameGeometry的区别)
开发语言·qt
aichitang202410 小时前
数论变换(NTT)
c++·算法·fft·ntt
_olone10 小时前
AtCoder Beginner Contest 465 D - X to Y
c++·算法
Esaka_Forever10 小时前
Python 与 JS (V8) 垃圾回收核心区别 + 底层根源分析
开发语言·javascript·jvm
星夜夏空9910 小时前
C++学习(3) —— C++输入输出流
c++·学习
CAU界编程小白10 小时前
CAU抢课脚本
c++·脚本
pp起床10 小时前
黑马点评 - 短信验证码登录实现
java·开发语言·tomcat