智能指针类
1.C++语言存在的问题
C++语言中没有垃圾回收机制,指针无法控制所指堆空间的生命周期,如果在动态申请堆空间后不释放堆空间,就会造成内存泄漏。
2.解决内存泄漏的方案
C++语言中提供了智能指针的方案解决内存泄漏的问题。使用智能指针,在指针生命周期结束时主动释放堆空间,一片堆空间最多由一个指针标识,同时杜绝指针运算和指针比较。
3.智能指针的设计方案
通过类模板(泛型编程)描述指针的行为,使用类模块就能够定义不同的指针对象。重载指针操作符”->”和”*”,利用智能指针对象模拟原生指针的行为。
4.智能指针实例
#ifndef SMARTPOINTER_H_INCLUDED
#define SMARTPOINTER_H_INCLUDED
#include <iostream>
using namespace std;
template<typename T>
class SmartPointer
{
protected:
T *m_pointer;
public:
SmartPointer(T