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

c++primer关于赋值操作符的一个有关问题

2012-04-02 
c++primer关于赋值操作符的一个问题C/C++ codeScreenPtr& ScreenPtr::operator(const ScreenPtr& rhs){++

c++primer关于赋值操作符的一个问题

C/C++ code
ScreenPtr& ScreenPtr::operator=(const ScreenPtr& rhs){    ++ptr->use;    if(--ptr->use==0)        delete ptr;    ptr=rhs.ptr;    return *this;}


ScreenPtr是一个具有一个指向一个含有使用计数use的指针的类.
为什么这里要先对使用计数先自增,再自减呢? 自增一次然后自减一次不还是原来的那个数吗??

[解决办法]
C/C++ code
ScreenPtr& ScreenPtr::operator=(const ScreenPtr& rhs){    ++rhs.ptr->use;    if(--ptr->use==0)        delete ptr;    ptr=rhs.ptr;    return *this;} 

热点排行