【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;
}
相关推荐
挖矿大亨4 分钟前
C++中的引用
开发语言·c++
程序员阿鹏8 分钟前
事务与 ACID 及失效场景
java·开发语言·数据库
趁月色小酌***26 分钟前
JAVA 知识点总结2
java·开发语言
m5655bj31 分钟前
C# 在 PDF 文档中添加电子签名
开发语言·pdf·c#
LinHenrY122736 分钟前
初识C语言(预处理详解)
c语言·开发语言
Larry_Yanan36 分钟前
Qt多进程(四)QTcpSocket
开发语言·c++·qt·ui
hqwest44 分钟前
码上通QT实战02--登录设计
开发语言·qt·登录·ui设计·qt控件·qt布局·qt登录
superman超哥1 小时前
仓颉Actor模型的实现机制深度解析
开发语言·后端·python·c#·仓颉
superman超哥1 小时前
仓颉内存管理深度探索:引用计数的实现原理与实战
c语言·开发语言·c++·python·仓颉
资生算法程序员_畅想家_剑魔1 小时前
Java常见技术分享-13-多线程安全-锁机制-底层核心实现机制
java·开发语言