【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;
}
相关推荐
User_芊芊君子6 分钟前
【Java String】类深度解析:从原理到高效使用技巧
java·开发语言
tomato098 分钟前
cf.训练
c++
fbbqt13 分钟前
Go语言 单元测试
开发语言·golang·单元测试
十五年专注C++开发44 分钟前
vcpkg: 一款免费开源的C++包管理器
linux·开发语言·c++·windows·包管理器
一世暖阳7931 小时前
JDK、JRE、Eclipse
java·开发语言·eclipse
你我约定有三1 小时前
分布式微服务--GateWay(1)
java·开发语言·分布式·微服务·架构·gateway
给我个面子中不1 小时前
java回顾八股文中想起的知识点
java·开发语言·python
啊森要自信3 小时前
【QT】常⽤控件详解(四)常用显示类控件类 Label && LCDNumber && ProgressBar && Calendar Widget
开发语言·数据库·c++·qt·qt6.3
Simple_core4 小时前
qt贝塞尔曲线演示工具
开发语言·qt
sannianji4 小时前
qt 采用movetothread在应用程序gui关闭时如何正确退出。
开发语言·qt