【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;
}
相关推荐
明洞日记2 分钟前
【VTK手册024】高效等值面提取:vtkFlyingEdges3D 详解与实战
c++·图像处理·vtk·图形渲染
NaturalHarmonia12 分钟前
【Go】sync package官方示例代码学习
开发语言·学习·golang
遥望九龙湖15 分钟前
3.析构函数
开发语言·c++
qq_4798754315 分钟前
systemd-resolved.service实验实战3
linux·服务器·c++
gihigo199817 分钟前
MATLAB中进行综合孔径微波辐射成像仿真
开发语言·matlab
闻缺陷则喜何志丹27 分钟前
【图论 组合数学】P10912 [蓝桥杯 2024 国 B] 数星星|普及+
c++·数学·蓝桥杯·图论
Three K28 分钟前
Redisson限流器特点
java·开发语言
Halo_tjn30 分钟前
Java 多线程机制
java·开发语言·windows·计算机
Jeff-Nolan34 分钟前
C++运算符重载
java·开发语言·c++
YouEmbedded34 分钟前
解码智能指针
开发语言·c++·unique_ptr·shared_ptr·auto_ptr·weak_ptr