1 #include<iostream>
2 using namespace std;
3 struct tree{
4 int num;
5 string s;
6 bool operator<(const tree &a)const
7 {
8 return a.num<num;
9 }
10 friend bool operator>(const tree a,const tree b)
11 {
12 return a.num<b.num;
13 }
14 bool operator==(const tree &a)const
15 {
16 return a.num==num;
17 }
18 tree operator+(const tree &a)const
19 {
20 tree t;
21 t.num=num+a.num;
22 t.s=s+a.s;
23 return t;
24 }
25 friend istream &operator>>(istream &in,tree &t)
26 {
27 in>>t.num>>t.s;
28 // return in;
29 }
30 friend ostream &operator<<(ostream &out, tree &t)
31 {
32 out<<t.num<<" "<<t.s<<endl;
33 // return out;
34 }
35 /* 重载部分运算符,以及输入输出运算符*/
36 };
37 int main()
38 {
39 tree a,b;
40 cin>>a;
41 cout<<a;
42 cin>>b;
43 cout<<b;
44 // a.num=5;
45 // a.s="hello";
46 // b.num=6;
47 // b.s="world";
48 if(!(a==b))
49 {
50 cout<<"hh";
51 }
52 else
53 {
54 cout<<"xx";
55 }
56 cout<<endl;
57 a=a+b;
58 cout<<a.num;
59 cout<<endl<<a.s;
60 }
重载输入输出运算符的函数,两个“&”必不可少。