c++符号重载中反回值为引用的问题
#include<iostream>
using namespace std;
class A
{
private:
int n;
public:
A(int x=0){n=x;}
A &operator + (A &rhs);
A &operator = (A &rhs);
void SetN(int a){n=a;}
int GetN(void){return n;}
};
A &A::operator + (A&rhs)//去掉前面的&,或去掉后面函数参数表里面的&可得出正确结果,但不知道原因
{
A b,*p;
b.SetN(n+rhs.n);
return b;/**/
}
A &A::operator = (A &rhs)//
{
n=rhs.n;//调试时发现此处rhs.n的值不是a+b的值
return rhs;
}
int main()
{
A a(234),b(432),c;
c=a+b;
cout<<c.GetN()<<endl;
}/**/