智能指针中的小疑点

智能指针中的小问题 SmartPtr& operator (const SmartPtr& rhs) {// self-assigning is also right++*rhs

智能指针中的小问题
 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成员函数。