在c++中进行动态内存申请的过程中,容易忘记delete, 即使自己没有忘记,但是因为有异常的抛出,所以也不能保证内存进行完全的释放。 auto_ptr智能指针 它只是众多的智能指针中的一种,是破坏性的指针。 使用std::auto_ptr智能指针 使用boost智能指针 使用atl框架中的智能指针 ...
分类:
其他好文 时间:
2020-04-18 14:08:15
阅读次数:
60
```cpp #include #include #include //auto ptr //shared_ptr //unique_ptr //weak_ptr class Parent; //采用前置声明 using ParentPtr = std::shared_ptr; typedef st... ...
分类:
编程语言 时间:
2020-02-24 21:03:42
阅读次数:
90
一:内存泄漏的问题 考虑如下的程序 void func() { ClassA *a = new ClassA; ... delete a; } 应该使用delete语句以保证new分配的空间一定会被释放。我几乎总会忘记delete语句,尤其函数要写return语句时,更容易忘记。 另外即使你加上了d ...
分类:
编程语言 时间:
2020-02-05 11:58:43
阅读次数:
85
简介 C++没有内存自动回收机制,对堆内存的管理就是简单的new和delete,每次new出来的内存都需要手动delete释放。但由于忘记、流程复杂或者异常退出等,都有可能导致没有执行delete释放内存,造成内存泄漏。 在实际工程中,我们往往希望将精力放在应用层上而不是费劲心思处理语言的细枝末节( ...
分类:
其他好文 时间:
2019-09-29 12:30:23
阅读次数:
67
有三个智能指针,auto_ptr(弃用)、unique_ptr、shared_ptr. 智能指针可以自动跟踪动态内存,在其过期时自动释放。 一、shared_ptr 用于new创建的对象,而不适用于new[]创建的对象, 用于多个指针共享一个地址的情况。 二、unique_ptr 用于只存留一个指针 ...
分类:
其他好文 时间:
2019-09-08 09:52:43
阅读次数:
79
前言 C++里面的四个智能指针: auto\_ptr, unique\_ptr,shared\_ptr, weak\_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。 C++11智能指针介绍 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期 ...
分类:
编程语言 时间:
2019-09-02 10:07:29
阅读次数:
114
四种智能指针的讲解(auto_ptr, second_ptr, shared_ptr, weak_ptr),包含源代码:https://blog.csdn.net/sinat_36118270/article/details/69061348 shared_ptr, unique_ptr, weak ...
分类:
编程语言 时间:
2019-07-29 17:36:30
阅读次数:
172
/***auto 会去掉顶层const 和 & 而decltype 不会***/ //什么是顶层? const int x=0, *ptr = x; auto i = ptr; //i is int * decltype(i) is const int * int i = 42, *p = &i, ... ...
分类:
其他好文 时间:
2019-05-18 15:53:29
阅读次数:
119
1. 几种智能指针 1. auto_ptr: c++11中推荐不使用他(放弃) 2. shared_ptr: 每添加一次引用 就+1,减少一次引用,就-1;做到指针进行共享 3. unique_ptr: 一个指针同时只能有一个使用者使用 4. weaked_ptr: 与shared_ptr搭配使用 ...
分类:
编程语言 时间:
2019-05-02 21:48:23
阅读次数:
209
1. 几种智能指针 1. auto_ptr: c++11中推荐不使用他 2. shared_ptr: 每添加一次引用 就+1,减少一次引用,就-1;做到指针进行共享 3. unique_ptr: 一个指针同时只能有一个使用者使用 4. weaked_ptr: 与shared_ptr搭配使用 1.1 ...
分类:
编程语言 时间:
2019-04-30 01:18:33
阅读次数:
152