??????????????
??????C++????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????(smartpointer)??????????????????????ü???(referencecount)?????????????????????????????????????????ü???????????ж???????????????
??????δ???????????????????????????ü??????1???????????????????????????????????????????????????????????????ü????????????????и????????????????????????????????????ü???????????ü????????0?????????????????????????????????????ü???????????????????????????????????ü???????????ü???????0?????????????????
??????????????
??????????std::auto_ptr??boost::scoped_ptr??boost::shared_ptr??boost::scoped_array??boost::shared_array??boost::weak_ptr??boost::intrusive_ptr
??????????????????????
????????????????????????????????????????????????????????????????????????????????????????????
template<classT>
classSmartPointer{
public:
SmartPointer(T*t):pt(t){}
T&operator*(){return*pt;}
T*operator->(){returnpt;}
private:
T*pt;
};
???????????ü????????
?????????????ü???????????????_counter??????????????????_counter??????г???趨?private?????????????????????????_counter?????SmartPointer??????в????????SmartPointer????????????
class_counter{
template<classT>friendclassSmartPointer;
_counter(intu):use(u){}
~_counter(){}
intuse;
};