1 #include "stdafx.h" 2 #include <iostream> 3 #include <string> 4 using namespace std; 5 6 class Test 7 { 8 public: 9 Test():mValue(2),mName("karen") 10 { 11 } 12 Test(string x,int y) 13 { 14 mName = x; 15 mValue = y; 16 } 17 ~Test() 18 { 19 } 20 friend ostream& operator<<(ostream& out,Test& in);//非类成员函数 21 friend istream& operator>>(istream& in,Test& out); 22 friend bool operator == (const Test& in1,const Test& in2); 23 friend bool operator != (const Test& in1,const Test& in2); 24 private: 25 int mValue; 26 std::string mName; 27 }; 28 ostream& operator<<(ostream& out,Test& in) 29 { 30 out<<in.mName<<in.mValue; 31 return out; 32 } 33 istream& operator>>(istream& in,Test& out) 34 { 35 cout<<"请输入英文名:"; 36 in>>out.mName; 37 cout<<"请输入号:"; 38 in>>out.mValue; 39 cout<<endl; 40 return in; 41 } 42 bool operator==(const Test& in1,const Test& in2) 43 { 44 return (in1.mName == in2.mName)&&(in1.mValue==in2.mValue); 45 } 46 bool operator!=(const Test& in1,const Test& in2) 47 { 48 return (in1.mName != in2.mName)||(in1.mValue!=in2.mValue); 49 } 50 int _tmain(int argc, _TCHAR* argv[]) 51 { 52 Test t; 53 /*输入输出*/ 54 cin>>t; 55 cout<<t; 56 /*相等操作*/ 57 Test t1("karen",3); 58 Test t2("karen",4); 59 if(t1!=t2) 60 cout<<"信息不一样"<<endl; 61 else 62 cout<<"信息一样"<<endl; 63 return 0; 64 }