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