C++指针分类
-
原始指针(raw pointer)
-
智能指针:智能指针是原始指针的封装,其优点是会自动分配内存,不用担心潜在的内存泄露
-
并不是所有的指针都可以封装成智能指针,很多时候原始指针要更方便
-
各种指针中,最常用的是裸指针,其次是unique_ptr和shared_ptr
-
weak_ptr是shared_ptr的一个补充,应用场景较少
普通指针的释放
- 类内的指针,在析构函数中释放。
- C++内置数据类型,如何释放? delete手工释放
- new出来的类,本身如何释放? 必须delete调用析构函数
智能指针设计思路
- 智能指针是类模板,在栈上创建智能指针对象。
- 把普通指针交给智能指针对象。
- 智能指针对象过期时,调用析构函数释放普通指针的内存。