数据结构 笔记:SharedPointer类实现

使用智能指针(SmartPointer)替换单链表(LinkList)中的原生指针是否可行?

问题

-SmartPointer的设计方案

·指针声明周期结束时主动释放堆空间

·一片堆空间最多只能由一个指针标识

·杜绝指针运算和指针比较

新的设计方案

-Pointer是智能指针的抽象父类(模板)

·纯虚析构函数virtual ~Pointer() = 0;

·重载operator -> ()

·重载operator * ()

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;
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值