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

admin2010-12-16  27

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

选项

答案MyClass&。

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

最新回复(0)