【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;
}
相关推荐
越甲八千20 分钟前
MFC listctrl修改背景颜色
c++·mfc
炯哈哈23 分钟前
【上位机——MFC】序列化机制
开发语言·c++·mfc·上位机
蓝莓味柯基27 分钟前
Python3正则表达式:字符串魔法师的指南[特殊字符]‍♂️
开发语言·python·正则表达式
隐世129 分钟前
C++多态讲解
开发语言·c++
Wooden-Flute29 分钟前
十四、继承与组合(Inheritance & Composition)
c++
阳区欠36 分钟前
【Linux】线程的同步与互斥
linux·服务器·c++·线程同步·线程互斥·生产者/消费者模型
码上飞扬1 小时前
Java大师成长计划之第20天:Spring Framework基础
java·开发语言
刚入门的大一新生1 小时前
C++初阶-string类的模拟实现1
开发语言·c++
梁下轻语的秋缘1 小时前
每日c/c++题 备战蓝桥杯(洛谷P1115 最大子段和)
c语言·c++·蓝桥杯
wen__xvn1 小时前
每日一题洛谷P8662 [蓝桥杯 2018 省 AB] 全球变暖c++
c++·职场和发展·蓝桥杯