【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;
}
相关推荐
duanyuehuan7 分钟前
js 解构赋值
开发语言·前端·javascript
wearegogog1237 分钟前
基于试射法和龙格库塔法的层状介质射线追踪MATLAB实现
开发语言·matlab
木木木一11 分钟前
Rust学习记录--C4 Rust所有权
开发语言·学习·rust
悟能不能悟13 分钟前
前端调用a服务,a服务将请求用controller+openfeign调用b服务,接口参数中有header参数和body,a服务应该怎么设置,才简单
java·开发语言·前端
2501_9418859613 分钟前
从接口演化到系统自治的互联网工程语法重构与多语言实践思路拆解分享文
java·开发语言
yong999014 分钟前
MATLAB自回归预测模型实现方案
开发语言·matlab·回归
浪客川16 分钟前
【百例RUST - 004】函数使用
服务器·开发语言·rust
程序猿(雷霆之王)16 分钟前
C++11——线程库
开发语言·c++
天天睡大觉16 分钟前
Python学习1
开发语言·python·学习