【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;
}
相关推荐
u01092727114 小时前
C++中的模板方法模式
开发语言·c++·算法
lly20240614 小时前
C++ 测验
开发语言
山上三树14 小时前
详细介绍读写锁
开发语言·c++·spring
jghhh0114 小时前
基于MATLAB的协同过滤推荐算法实现
开发语言·matlab·推荐算法
比特森林探险记14 小时前
后端开发者快速入门react
开发语言·前端·javascript
苏宸啊14 小时前
string实现
c++
马士兵教育14 小时前
计算机专业学生入行IT行业,编程语言如何选择?
java·开发语言·c++·人工智能·python
码界奇点15 小时前
基于eBPF技术的高性能网络防火墙系统设计与实现
开发语言·网络·毕业设计·php·wpf·go语言·源代码管理
一起养小猫15 小时前
Flutter for OpenHarmony 实战:ListView与GridView滚动列表完全指南
开发语言·javascript·flutter
程序员清洒15 小时前
Flutter for OpenHarmony:ListView — 高效滚动列表
开发语言·flutter·华为·鸿蒙