【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;
}
相关推荐
kitesxian3 分钟前
Leetcode160.相交链表
数据结构·c++·链表
罔闻_spider3 分钟前
递归(二)---力扣22括号生成,力扣78求子集
开发语言·python
h汉堡15 分钟前
C语言的内存函数
c语言·开发语言·c++·学习
彭彭不吃虫子19 分钟前
【字符串】给定一个字符串 text 和字符串列表 words,返回 words 中每个单词在 text 中的位置(要求最终的位置从小到大进行排序)
开发语言·数据结构·python
攻城丶狮23 分钟前
信息学奥赛-一本通-第二部分 基础算法 --> 第五章 搜索与回溯算法
c++·算法·青少年编程·深度优先·图论
凡人的AI工具箱27 分钟前
15分钟学 Go 第 59 天 :更高级的Go话题——接触微服务
开发语言·人工智能·后端·微服务·golang
喻师傅34 分钟前
Scala-注释、标识符、变量与常量-用法详解
大数据·开发语言·scala
小白的白是白痴的白38 分钟前
11.14 Scala的Array
开发语言·后端·scala
未知陨落39 分钟前
数据结构——红黑树
开发语言·数据结构·c++·红黑树
赛丽曼1 小时前
Python中的进程和线程
开发语言·python