学习笔记36-C++ 智能指针
2017-09-21 09:35
344 查看
动态分配内存-回收问题
因为C++没有自动内存回收机制,程序员每次new出来的内存都要手动delete,如果程序员忘记delete,那么这个指针指向的对象不能被安全删除,比如下面的情况:Object_type *ptr=new Object_type(); ptr->func(); delete ptr;
如果程序员忘记第三行的delete,那么会造成一个悬挂指针(dangling pointer),也就是说这个指针指向的内存区域程序员无法把握和控制,非常容易造成内存泄漏。
而且,如果上述程序在执行过程中,func()运行时抛出异常,那么就算第三行有delete,对象也不能被安全删除。
智能指针
智能指针就是为了解决上述问题,它和普通指针的区别在于对普通指针加了一层封装机制,这样一层封装机制的目的是为了方便的管理一个对象的生命周期。智能指针可以简单理解为自动释放当前管理的内存。
相关文章推荐
- C++学习笔记之智能指针
- C++学习笔记38——智能指针
- c++学习笔记——智能指针
- c++ 11学习笔记--智能指针
- C/C++学习笔记:智能指针详解
- 智能指针auto_prt的使用(c++学习笔记)
- C++学习笔记之一智能指针
- 智能指针auto_prt的使用(c++学习笔记)
- 现代C++学习笔记之一入门篇:智能指针(C++ 11)
- C++ 学习笔记(12)动态内存、智能指针、new和delete、动态数组、allocator
- 智能指针auto_prt的使用(c++学习笔记)
- c++ 模板学习笔记:类模板模拟auto_ptr智能指针(权哥)
- C++学习笔记--智能指针
- C++ 学习笔记:原生指针 && 泛型指针 && 智能指针
- C++学习笔记之 函数重载和函数指针在一起
- c++学习笔记 内存四区 函数调用模型 指针强化
- C++primer学习笔记----智能指针
- C/C++学习笔记----指针的理解
- 学习笔记之C/C++指针使用常见的坑
- 【C++】【学习笔记】【016】this指针和类的继承