1、首先运算符重载是什么?
答:其实运算符重载就是将运算符重新设定的功能;比如输出整个类时,可以重载过后就可以直接输出。如图,输出可以直接写:cout<<lucy+bob;就可以直接输出整个类。
Person operator +(Person ob,Person ob1)
{
Person tmp;
tmp.num=ob.num+ob1.num;
tmp.name=ob.name+ob1.name;
tmp.score=ob.score+ob1.score;
return tmp;
}
int main(int argc, char *argv[])
{
Person ob(1,"lucy",99.8f);
Person ob1(2,"bob",99.9f);
cout<<ob+ob1;
cout<<ob<<ob1;
return 0;
}
2、为什么不能引用局部变量的引用
答:随着程序的运行,局部变量会随着函数运行结束而释放。
因此,返回局部变量时,运算符重载的函数返回值不能用&,那么传型参时,就要类型一致,也不能用引用。
所以,在写运算符重载函数时运算符重载函数返回值类型,型参尽量不要用引用。