请各位大佬救救这个孩纸吧!
遇到一问题,请各位大佬指点指点。
#include<iostream>
using namespace std;
class S
{
private:
int a;
public:
S(int t=0):a(t){}
S operator+(S &s)
{
S t(a+s.a);
return t;
}
int get(){return a;}
};
ostream& operator<<(ostream &x,S &s)
{
x<<s.get();
return x;
}
int main()
{
S a(1),b(2);
S c=a+b;
cout<<(a+b);//编译报错
cout<<(a+b).get()<<endl;
cout<<c;
return 0;
}
这里报错的一行,不应是先将a+b进行计算,返回临时对象,然后再输出。我对这个输出符和加号进行了重载,为什么报错?