【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;
}
相关推荐
清水白石0082 分钟前
解锁 Python 性能潜能:从基础精要到 `__getattr__` 模块级懒加载的进阶实战
服务器·开发语言·python
清水白石00815 分钟前
缓存的艺术:Python 高性能编程中的策略选择与全景实战
开发语言·数据库·python
D_evil__16 分钟前
【Effective Modern C++】第六章 lambda表达式:避免使用默认捕获模式
c++
Andy Dennis26 分钟前
各种单例模式的实现方式
java·单例模式
逆境不可逃27 分钟前
【从零入门23种设计模式02】创建型之单例模式(5种实现形式)
java·spring boot·后端·单例模式·设计模式·职场和发展
JienDa30 分钟前
Haio · 海鸥 - 企业级插件化应用平台
开发语言·php
Toormi31 分钟前
Go 1.26在性能方面做了哪些提升?
开发语言·后端·golang
CHANG_THE_WORLD31 分钟前
深入理解C语言指针运算与数据搜索
c语言·开发语言
随意起个昵称35 分钟前
建图优化小记
c++·算法
DokiDoki之父40 分钟前
边写软件边学kotlin(二)——语法推进
开发语言·微信·kotlin