【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;
}
相关推荐
Andlin15 分钟前
《CMakeList 知识系统学习系列(三):函数和宏》
c++
Forget the Dream20 分钟前
设计模式之迭代器模式
java·c++·设计模式·迭代器模式
周努力.27 分钟前
设计模式之单例模式
单例模式·设计模式
咩咩觉主27 分钟前
C# &Unity 唐老狮 No.7 模拟面试题
开发语言·unity·c#
大丈夫在世当日食一鲲28 分钟前
Java中用到的设计模式
java·开发语言·设计模式
️Carrie️1 小时前
10.2 继承与多态
c++·多态·继承
Nicole Potter1 小时前
内存泄漏出现的时机和原因,如何避免?
c++·游戏·面试·c#
却道天凉_好个秋1 小时前
c++ 嵌入汇编的方式实现int型自增
开发语言·汇编·c++
33三 三like1 小时前
软件工程画图题
java·开发语言·软件工程
&岁月不待人&2 小时前
Kotlin和Java区别
java·开发语言·kotlin