c++primer关于赋值操作符的一个有关问题
c++primer关于赋值操作符的一个问题
ScreenPtr是一个具有一个指向一个含有使用计数use的指针的类.
为什么这里要先对使用计数先自增,再自减呢? 自增一次然后自减一次不还是原来的那个数吗??
------解决方案--------------------
- 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; }