文章目录
1 智能指针的设计方案
继承关系类图:
设计方案:
- Pointer是智能指针的抽象父类(模板)。
- 纯虚析构函数
virtual ~Pointer() = 0;
。 - 重载
operator -> ();
。 - 重载
operator * ();
。
Pointer接口定义:
2 代码实现
#ifndef POINTER_H
#define POINTER_H
#include "Object.h"
namespace LemonLib {
template < typename T >
class Pointer : public Object
{
protected:
T* m_pointer;
public:
Pointer(T* p = NULL)
{
m_pointer = p;
}
T* operator -> ()
{
return m_pointer;
}
T& operator * ()
{
return *m_pointer;
}
bool isNull()
{
return (m_pointer == NULL);
}
T* get()
{
return m_pointer;
}
};
}
#endif // POINTER_H