求解释代码的意思
template<typename Y> Handle& operator=(const Handle<Y>& r) { if(this->_ptr != r._ptr) { if(r._ptr) { r._ptr->__incRef(); } T* ptr = this->_ptr; this->_ptr = r._ptr; if(ptr) { ptr->__decRef(); } } return *this; }
template<typename Y>Handle& operator=(const Handle<Y>& r) // 重载拷贝赋值操作符{ if(this->_ptr != r._ptr) // 如果当前对象(即=号左边的对象)中的_ptr和传入参数r的_ptr不相等(隐含意义:如果相等则 { // 直接跳到return *this; 即返回当前对象) if(r._ptr) // 如果r._ptr是一个正常的指针 { r._ptr->__incRef(); // 增加r._ptr被引用的次数 } T* ptr = this->_ptr; // 将当前对象的_ptr赋给ptr this->_ptr = r._ptr; // 将传入参数r的_ptr赋给当前对象的_ptr if(ptr) // 如果ptr是一个有效指针 { ptr->__decRef(); // 减少ptr被引用的次数 } } return *this; // 返回当前对象}