经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
C/C++编程笔记:C++单例模式详细解析!从零开始学懂单例
来源:cnblogs  作者:C/C++爱好者  时间:2020/11/23 12:22:00  对本文有异议

单例模式定义

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

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

 

单例模式的实现要求

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

单例模式的代码实现

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

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

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

 

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

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

接下来是实现cpp文件

 

这里面很容易看出来 getSingleton()函数用来new单例指针 判断是否单例指针存在,这样的好处 是可以保证整个类的全局指针 只占用一个内存地址,无需每次都要new

接下来看一下测试代码

 

运行程序 :

 

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

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

头文件

 

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

实现

 

很简单 和上面一样

接下来看一下测试代码

 

测试代码也很简单

new了两个指针 然后执行walk函数 最后看一下地址 然后释放内存

看一下运行结果:

 

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

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

C语言C++编程学习交流圈子,QQ群1030652847点击进入】微信公众号:C语言编程学习基地

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

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

编程学习书籍分享:

编程学习视频分享:

原文链接:http://www.cnblogs.com/112Q/p/13991493.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号