智能指针:shared_ptr
创始人
2024-06-01 19:42:50
0

智能指针

c++中不像java自带垃圾回收机制,必须释放掉分配的内存,否则机会造成内存泄漏。因此c++11加入了智能指针。智能指针是存储指向动态分配(堆)对象指针的类,用于生存期的控制,能够确保在离开指针所在作用域时,自动的销毁分配的对象,防止内存泄漏。智能指针的核心实现技术是引用技术,没使用它一次内部引用计数+1,每析构一次内部引用技术-1,减为0时,删除原始指针指向的堆区内存,使用智能指针需要引用头文件.

std::shared_ptr:共享的智能指针

std::unique_ptr:独占的智能指针

std::weak_ptr:弱引用的智能指针,它不共享指针,不能操作资源,是用来监视shared_ptr的,解决循环引用问题。

share_ptr(共享智能指针)

初始化:

共智能指针是指多个智能指针可以同时管理同一块有效的内存,共享智能指针share_ptr是一个模板类,如果进行初始化有三种方式如下:

通过构造函数初始化

std::make_shared辅助函数

reset方法

共享智能指针对象初始化完毕只够就指向了要管理的那块堆区内存,如果想要查看当前有多少个智能指针同时管理着这块内存可以使用共享指针提供的一个成员函数use_count.

构造函数初始化

构造函数初始化

打印结果为:1 1 0 0

如果智能指针被初始化了一块有效内存,那么这块内存的引用技术+1,如果智能指针没有被初始化或者被初始化为nullptr空指针,引用计数为0,另外,不要使用一个原始指针初始化多个shared_ptr。

拷贝和移动构造函数初始化

当一个智能指针被初始化后,就可以通过这个智能指针初始化其他新的对象。在创建新对象的时候,对应的拷贝构造函数或者移动构造函数就被调用了

打印结果: 1 2 3 3 3

如果使用拷贝的方式初始化共享智能指针,这两个对象会同时管理同一块内存,堆内存对应的引用技术也会增加。如果使用移动构造的方式初始化智能指针对象,只是转让了内存的所有权,管理内存的对象不会增加,因此内存引用计数不会增加。

std::make_shared 初始化

通过c++11提供的std::make_shared()就可以完成内存对象的创建并将其初始化给智能指针

打印结果:

对于一个未初始化的共享智能指针,可以通过reset方法来初始化,当智能指针中有值的时候,调用reset会使引用计数-1.

获取原始指针

get()函数

相关内容

热门资讯

精选情感电台广播稿   本站为大家精选了精选情感电台广播稿,欢迎阅读。  精选情感电台广播稿【一】  大家好,收音机旁我...
致接力运动员加油稿   致接力运动员加油稿(一)  小小接力棒,连着你和我,牵着你的情,动着我的心。这是团结的象征,这是...
致敬最美逆行者讲话稿 致敬最美逆行者讲话稿范文(精选11篇)  随着社会一步步向前发展,各种讲话稿频频出现,讲话稿可以按照...
《观潮》说课稿 《观潮》说课稿15篇  作为一位杰出的教职工,总不可避免地需要编写说课稿,说课稿有助于提高教师的语言...
八年级下册《马说》说课稿 八年级下册《马说》说课稿八年级下册《马说》说课稿1  一.说教材  1. 教材所处的地位和作用:  ...
小学数学说课例稿   实际上数学就在学生身边,教师要善于引导学生运用数学的眼光去观察和认识现实生活中的客观事物,在有关...
《放小鸟》说课稿 《放小鸟》说课稿  作为一名为他人授业解惑的教育工作者,时常需要用到说课稿,借助说课稿可以更好地提高...
《平行四边形的认识》数学说课... 《平行四边形的认识》数学说课稿  作为一位兢兢业业的人民教师,时常要开展说课稿准备工作,借助说课稿可...
职工拾金不昧新闻稿 职工拾金不昧新闻稿  拾金不昧拾到东西并不隐瞒下来据为己有,指良好的人的道德和社会风尚。以下是小编为...
《鸬鹚》优秀说课稿 《鸬鹚》优秀说课稿  《鸬鹚》是义务教育六年制小学语文第七册第21课,作者是我国现代著名的文学家郑振...
校园红领巾广播稿 校园红领巾广播稿100字(通用27篇)  有在广播站锻炼的同学们,广播前一般都会提前做好广播稿,优秀...
《最后一课》说课稿 《最后一课》说课稿《最后一课》说课稿1  它是初中一年级的教学内容,具体编排在第一册第二单元的第二篇...
国庆节朗诵稿 国庆节朗诵稿  在我们上学期间,大家对朗诵稿都再熟悉不过了吧,朗诵是口语交际的一种重要形式。你知道什...
运动会广播稿100字:致短跑...   1.间的成败 ——致百米运动员  红色的跑道,承载着多少汗水,一条红线,记载着多少成败。  一次...
万能开会发言稿 万能开会发言稿公司开会,肯定是需要提前做好准备的,也要准备好要说的话,或是发言稿,万能开会发言稿。万...
《要下雨了》说课稿 小学语文一年级下册《要下雨了》说课稿范文  作为一名老师,时常需要编写说课稿,说课稿有助于学生理解并...
运动会加油稿 运动会加油稿20字  导语:运动会少不了加油,简单的一句话,可以给予运动会无限的力量。下面是为大家的...
小学语文《数字歌》说课稿 小学语文《数字歌》说课稿  【说教材】  我说的是九年义务教育新课程北师大版语文一年级上册第三单元《...
高三百日誓师领导发言稿 高三百日誓师领导发言稿  在不断进步的时代,发言稿使用的情况越来越多,发言稿可以帮助发言者更好的表达...
小学经典美文朗诵稿 通过朗诵可以陶冶性情,开阔胸怀,文明言行,增强理解。下面是大学网小编为大家整理了小学经典美文朗诵稿,...