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

求解释代码的意义

2012-08-11 
求解释代码的意思C/C++ code templatetypename YHandle& operator(const HandleY& r){if(this-_ptr

求解释代码的意思

C/C++ code
 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;    }


[解决办法]
应该是 Handle类模板针对其他类型的=赋值操作符重载。

主要用于带有类型转换的赋值。
[解决办法]
C/C++ code
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;                        // 返回当前对象} 

热点排行