【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;
}
相关推荐
The Last.H7 分钟前
Codeforces Round 1065 (Div. 3)A-C2
c++·算法
a程序小傲9 分钟前
米哈游Java面试被问:gRPC的HTTP/2流控制和消息分帧
java·开发语言·tcp/ip·http·面试·职场和发展·php
m0_7482486516 分钟前
C++高性能服务器框架----Http模块
服务器·c++·http
tudficdew21 分钟前
类型安全容器设计
开发语言·c++·算法
naruto_lnq21 分钟前
C++与Docker集成开发
开发语言·c++·算法
试剂小课堂 Pro25 分钟前
Ald-PEG-Ald:丙醛与聚乙二醇两端连接的对称分子
java·c语言·c++·python·ffmpeg
独自破碎E26 分钟前
【双指针】接雨水
java·开发语言
AllData公司负责人26 分钟前
【亲测好用】数据平台能力演示
java·数据库·c++·开源
小北方城市网28 分钟前
MyBatis-Plus 生产级深度优化:从性能到安全的全维度方案
开发语言·redis·分布式·python·缓存·性能优化·mybatis
@呵呵34 分钟前
上传图片裁剪
开发语言·javascript·vue.js