火影哪一集是回忆四代:C++问题,请帮忙解释一下!

来源:百度文库 编辑:高校问答 时间:2024/04/28 19:14:35
在一个重载赋值运算符的程序里,其中的重载部分如下:
Cat &Cat::operator=(const Cat &rhs)
{
if(this==&rhs)
return *this;
*itsAge=rhs.GetAge();
*itsWeight=rhs.GetWeight();
return *this;
}
这个函数的返回是一个Cat对象的引用吗?if条件又表示的是什么?
请帮忙解释一下!谢谢!

赋值符号的重载,返回赋值符号左部的引用。

if的意思是,如果赋值号的左部和右部是相同的引用,那么不作任何操作,而直接返回;否则对Cat类中的属性(age、weight)进行改变,使其为rhs的属性。

返回的是Cat对象的引用。
if条件表示: 该重载函数所在对象,是否就是&rhs