【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;
}
相关推荐
tmacfrank6 分钟前
Kotlin 协程十一 —— 协作、互斥锁与共享变量
java·开发语言·kotlin
lsx2024067 分钟前
Perl 哈希
开发语言
楼田莉子11 分钟前
仿muduo的高并发服务器——前置知识讲解和时间轮模块
服务器·开发语言·c++·后端·学习
花间相见12 分钟前
【MS-Swift实战】:LoRA原理+核心参数(r/alpha)调参指南(适配Qwen-1.8B医疗场景)
开发语言·r语言·swift
OYangxf13 分钟前
C++中的回调函数:从函数指针到现代可调用对象
c++
求知也求真佳14 分钟前
S03|待办写入:让 AI 不再走一步忘一步,多步任务不再跑偏
开发语言·agent
Metaphor69216 分钟前
使用 Python 提取 PDF 文件中的文本、表格、图片
开发语言·python·pdf
qeen8720 分钟前
【数据结构】队列及其C语言模拟实现
c语言·数据结构·c++·学习·队列
田野追逐星光22 分钟前
C++继承 -- 讲解超详细(上)
c++·算法
csbysj202024 分钟前
Ruby 正则表达式
开发语言