
第十二章:动态内存和智能指针
Lucky小黄人
公众号:TestDevelop,一个互联网测试开发工程师,分享各种测开知识、沟通技巧、职场感言。
展开
-
12.动态内存和智能指针、 直接管理内存、shared_ptr和new结合使用
12.动态内存和智能指针 1.智能指针分为两种shared_ptr和unique_ptr,后者独占所指向的对象。智能指针也是模板,使用时要用尖括号指明指向的类型。类似emplace成员,make_shared用其参数来构造给定类型的对象。(make_shared创建一个对象并将之初始化,返回一个指向该类型的指针。 2.每个智能指针都有一个关联的计数器,称为引用计数,用来记录有多少个shared...原创 2018-07-26 16:13:35 · 312 阅读 · 0 评论 -
智能指针和异常、 weak_ptr、unique_ptr
12.1.4智能指针和异常 1.在块中创建的动态内存,如果是由内置指针来指向这块内存,那么若是在块结束时未delete这个指针,则该内存不会被释放,若在delete之前发生异常,由于还没执行delete操作,内存也不会被释放;但若是由智能指针来指向这块内存,那无论是否发生异常,都能在正确时间释放内存,正常是在块结束处,异常则是在异常处。 2.使用智能指针应遵守的规范: (1)不使用相同的内置...原创 2018-07-26 16:20:49 · 414 阅读 · 0 评论 -
动态数组、allocator 类
12.2 动态数组 12.2.1 new 和数组 1.分配一个动态数组即是在分配一个new对象时在类型名之后加一对方括号,用来存放数组大小,该数可以是任意表达式、也可以是0,只需是整形、无需是常量。数组分配成功后返回一个指向第一个对象的指针。 2.该分配的动态数组并非是数组类型,也就不能调用数组的begin和end函数,更不能使用需要begin函数的范围for语句。 3.我们可以在方括号后...原创 2018-07-26 16:28:20 · 250 阅读 · 0 评论