vlambda博客
学习文章列表

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

单例模式定义

该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

在C++中,我个人的理解是,不需要自己new类指针,这样一方面也方便程序员自己管理内存,另一方面可以节省系统指针,减少占用内存资源。


单例模式的实现要求

简单的来说,就是一个类要有唯一的单例,而且这个单例类能够被其他对象所调用,不能用,那就没意义了嘛 。

单例模式的代码实现

前面两个定义和实现要求理解之后,让我们来看看单例模式是如何在C++中被巧妙地利用。

首先看一下使用单例模式的类

头文件单例类的定义如下:

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

其中定义了单例成员指针m_Instance或获取单例指针的方式

还定义了类CGarbage 用于释放单例指针

接下来是实现cpp文件

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

接下来看一下测试代码

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

运行程序 :

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

可以明显的看出,只产生了一个实例指针,这样很方便我们去管理内存,也不占用内存资源

接下来看一下不用单例模式的常规类会有什么不一样

头文件

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

定义了一个人的类 里面一个walk方法

实现

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

很简单 和上面一样

接下来看一下测试代码

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

测试代码也很简单

看一下运行结果:

C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例

可以明显看出 这个产生了两个内存,如果在大型项目当中 需要在不同的文件当中引用类,很明显,对于程序本身占用内存 是个负担,而且 很容易造成内存泄漏的现象,所以单例模式的优势也显而易见,可以尽可能占用少的内存,并且及其易于管理内存,希望借着两个例子,能够给大家带来一点启发。

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:


编程学习视频分享: