读书人

智能指针中的小疑点

发布时间: 2013-10-21 17:02:52 作者: rapoo

智能指针中的小问题
SmartPtr& operator= (const SmartPtr& rhs) {
// self-assigning is also right
++*rhs.pUse;
if (--*pUse == 0) {
delete ptr;
delete pUse;
}
ptr = rhs.ptr;
pUse = rhs.pUse;
return *this;
}
pUse用于记数,ptr为指针变量。,在此为什么要用if操作,不是直接pUse++就可以了吗?为什么要——。
[解决办法]
这是为了让const对象也能使用->重载呀.
因为为了确保const对象的数据成员不会被改变,在C++中,const对象只能调用const成员函数。

读书人网 >C++

热点推荐