首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

智能指针中的小疑点

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

热点排行