【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;
}
相关推荐
天空属于哈夫克31 分钟前
Go 开发:企微外部群主动发送消息
开发语言·golang·企业微信
会周易的程序员10 分钟前
openplc runtime v4 安全
网络·c++·物联网·websocket·安全·https·ssl
不绝19114 分钟前
延迟函数/协同程序
java·开发语言
魔力军15 分钟前
Rust学习Day5:结构体介绍和使用
开发语言·学习·rust
maplewen.17 分钟前
C++ 内存对齐
开发语言·c++
柒儿吖23 分钟前
三方库 Boost.Regex 在 OpenHarmony 的 lycium完整实践
c++·c#·openharmony
老毛肚25 分钟前
java juc 01 进程与线程
java·开发语言
1candobetter27 分钟前
JAVA后端开发——反射机制在Spring业务开发中的实际应用
java·开发语言·spring
一只小小的芙厨29 分钟前
寒假集训·子集枚举2
c++·笔记·算法·动态规划
野犬寒鸦33 分钟前
WebSocket协同编辑:高性能Disruptor架构揭秘及项目中的实战应用
java·开发语言·数据库·redis·后端