C++学习笔记(八) 智能指针
指针是C++从C继承过来的一个强大而有效的工具,指针被人诟病的地方有很多,其中内存管理的艰难性就是其中之一。比如一个在堆中维护的对象,有好几个指针都指向它,那么究竟由谁来负责释放内存呢?小程序还好说,大程序往往很难理清其中的逻辑,一个处理不好就会造成内存泄露这样的严重问题。
智能指针就是这样一种实现机制,它通过一种引用计数器的实现原理,来保证由最后一个指向该对象的指针负责释放内存,将管理内存的工作交由指针自己去完成,减轻了程序的员的负担。下面我们来手动完成一个智能指针的实现:
SmartPointer.h文件
(ptr->)->test();
这样就保证了我们可以正常使用我们的智能指针,而且这种机制是递归的,也就是说,如果指向运算符返回的仍是一个重载了指向运算符的类,而非普通的指针,那么它将做递归的替换。好了,重点的就说这么多吧。