【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;
}
相关推荐
A懿轩A15 小时前
【Java 基础编程】Java 变量与八大基本数据类型详解:从声明到类型转换,零基础也能看懂
java·开发语言·python
2301_8112329815 小时前
低延迟系统C++优化
开发语言·c++·算法
我能坚持多久15 小时前
D20—C语言文件操作详解:从基础到高级应用
c语言·开发语言
txinyu的博客16 小时前
解析muduo源码之 ThreadLocal.h
c++
橘子师兄16 小时前
C++AI大模型接入SDK—ChatSDK封装
开发语言·c++·人工智能·后端
上天_去_做颗惺星 EVE_BLUE16 小时前
Docker高效使用指南:从基础到实战模板
开发语言·ubuntu·docker·容器·mac·虚拟环境
2401_8576835416 小时前
C++中的原型模式
开发语言·c++·算法
s1hiyu16 小时前
C++动态链接库开发
开发语言·c++·算法
(❁´◡`❁)Jimmy(❁´◡`❁)16 小时前
CF2188 C. Restricted Sorting
c语言·开发语言·算法
星火开发设计16 小时前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识