A-A+

在MyClass类的定义中 对赋值运算符=进行重载。请将横线处缺失的部分补充完整。_____

2022-08-06 05:14:37 问答库 阅读 176 次

问题详情

在MyClass类的定义中,对赋值运算符=进行重载。请将横线处缺失的部分补充完整。
______MyClass::operator=(const MyClass&rhs)
{
if(this==&rhs)return*this;
value=rhs.value;
return*this;
}请帮忙给出正确答案和分析,谢谢!

参考答案

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

考点:横线,赋值