填空题
在MyClass类的定义中,对赋值运算符一进行重载。请将横线处缺失的部分补充完整。
______MyClass::operator=(const MyClass&rhs)
if(this==&rhs)return *this;
value=rhs.value;
return *this;
【正确答案】
1、MyClass&
【答案解析】[解析] 本题考查“=”运算符的重载。运算符“=”的重载需要注意:返回值应声明为引用,函数体中总是用语句return *this;返回;如果参数被声明为指向同类对象的引用或指针,应判别所指向的对象是否与被赋值对象为同一对象,如果是则不做任何处理;如果被赋值对象占用了动态空间,应释放这些资源,以便接收新的资源;如果参数被声明为指针或引用,通常应加上const修饰;一个类如果需要重载运算符=,通常也就需要定义自身特有的复制构造函数,反之亦然。