【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;
}
相关推荐
C_Liu_4 分钟前
13.C++:继承
开发语言·c++
张人玉6 分钟前
c#串口读写威盟士五插针
开发语言·c#·通讯
路长冬13 分钟前
matlab与数字信号处理的不定期更新
开发语言·matlab·信号处理
卡卡酷卡BUG30 分钟前
Java 后端面试干货:四大核心模块高频考点深度解析
java·开发语言·面试
Yolo566Q33 分钟前
OpenLCA生命周期评估模型构建与分析
java·开发语言·人工智能
凡同学。37 分钟前
通信人C++自学
c++·应届生秋招·后端四件套
安娜的信息安全说44 分钟前
深入浅出 MQTT:轻量级消息协议在物联网中的应用与实践
开发语言·物联网·mqtt
威桑1 小时前
C++ Linux 环境下内存泄露检测方式
linux·c++
在坚持一下我可没意见1 小时前
HTTP 协议基本格式与 Fiddler 抓包工具实战指南
java·开发语言·网络协议·tcp/ip·http·java-ee·fiddler
樱花开了几轉1 小时前
element ui下拉框踩坑
开发语言·javascript·ui