在MyClass类的定义中,对赋值运算符;进行重载。请将横线处缺失的部分补充完整。 ______MyClass::operator=(const MyClass& rhs) { if(this == &rhs) return *t

admin2010-06-06  28

问题 在MyClass类的定义中,对赋值运算符;进行重载。请将横线处缺失的部分补充完整。
   ______MyClass::operator=(const MyClass& rhs)
   {
       if(this == &rhs) return *this;
        value = rhs.value;
        return *this;
   }

选项

答案MyClass&

解析 此题考查“=”运算符的重载。运算符“=”的重载需要注意:返回值应声明为引用,函数体中总是用语句return *this;返回;如果参数被声明为指向同类对象的引用或指针,应判别所指向的对象是否与被赋值对象为同一对象,如果是则不做任何处理;如果被赋值对象占用了动态空间,应先释放这些资源,以便接收新的资源;如果参数被声明为指针或引用,通常应加上const修饰;一个类如果需要重载运算符=,通常也就需要定义自身特有的复制构造函数,反之亦然。
转载请注明原文地址:https://kaotiyun.com/show/FMjp777K
0

最新回复(0)