智能指针类(ScopedPointer和SharedPointer)

智能指针类(ScopedPointer和SharedPointer)

当ScopedPoniter对象销毁时,会自动释放所指堆空间对象。
当SharedPointer对象销毁时,会自动将引用计数减1,只有当引用计数为0时才会释放堆空间对象。
  • Pointer类 接口类
  • ScopedPointer类 不可拷贝
  • SharedPointer类 带引用计数

//Pointer.h
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() const
    { return m_pointer;}

    virtual ~Pointer() = 0;

};

template <typename T>
Pointer<T>::~Pointer()
{ }
//ScopedPointer.h
template<typename T>
class S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值