引言 普通指针使用时存在挂起引用以及内存泄漏的问题,C++ 11中引入了智能指针来解决它 std::unique_ptr std::auto_ptr,时代的眼泪 std::unique_ptr是std::auto_ptr的替代品,解决了C++ 11之前std::auto_ptr的很多缺漏 ...
动态数组不是数组 将new T 分配得到的内存称为 动态内存 ,这种说法其实不准确,使用new分配一个数组时,我们并未得到一个数组类型的对象,而是一个数组元素类型的指针,即使用类型别名定义一个数组类型,new也不会分配一个数组类型的对象。 我们正在分配一个数组的试试生之时不可见的,连 num 都没有,new返回的是一个元素类型的指针。 动态分配一个空数组时合法的 如: 释放动态数组: delete ...
2019-04-15 20:53 0 638 推荐指数:
引言 普通指针使用时存在挂起引用以及内存泄漏的问题,C++ 11中引入了智能指针来解决它 std::unique_ptr std::auto_ptr,时代的眼泪 std::unique_ptr是std::auto_ptr的替代品,解决了C++ 11之前std::auto_ptr的很多缺漏 ...
只能指针的行为类似常规指针,重要的区别是它负责自动释放所指向的对象。智能指针定义在memory头文件中。 1. auto_ptr(C++11已经舍弃) 由new expression获得的对象,在auto_ptr对象销毁时,他所管理的对象也会自动被delete掉。 上述语句中,如果p1 ...
要点回顾 此部分方便知识点快速回顾,首次阅读请从引言部分开始。 RAII 的主要原则就是把任何在堆上分配的资源(比如动态分配的内存或者系统对象的处理)的所有权提供给在栈上分配的对象(其析构函数包含释放资源及相关清理的代码)。 在现代 C++ 中,原始指针只用于包含 ...
C++智能指针 来源 https://zhuanlan.zhihu.com/p/30933682 参考 https://www.zhihu.com/question/319277442/answer/1094961099 ======================== 智能指针只能代替T ...
C++智能指针 C++ 11 新特性 智能指针(shared_ptr, unique_ptr, weak_ptr) shared_ptr shared_ptr基本用法 shared_ptr采用引用计数的方式管理所指向的对象。当有一个新的shared_ptr指向同一个对象时(复制 ...
数组的智能指针 使用 数组的智能指针的限制: 1,unique_ptr的数组智能指针,没有*和->操作,但支持下标操作[] 2,shared_ptr的数组智能指针,有*和->操作,但不支持下标操作[],只能通过get()去访问数组的元素。 3,shared_ptr的数组智能指针 ...
c++的智能指针在标准库中有四种auto_ptr、 unique_ptr、 shared_ptr、 weak_ptr 具体四种智能指针的使用场景和优缺点需要进一步学习。 博文地址: http://blog.csdn.net/zsc_976529378/article/details ...
以前学智能指针时有点想当然了,一直以为智能指针很智能,不管你让它管理的是单个资源还是连续的资源它都能正确的将资源释放,现在发现自己大错特错。 先看代码: case1:管理单个资源 这种情况是没有问题的,程序结束时自动释放资源,控制台输出"Test ...