输入的重载比输出多出要判断输入的数据正确否,输入状态是否正常等等
#include <iostream>
#include <conio.h>
using namespace std;
class Test
{
friend ostream& operator<<(ostream& os, const Test& obj );
friend istream& operator>>(istream& in, Test& obj );
public:
Test(int i=0): m_ni(i){};
~Test(){};
protected:
private:
int m_ni;
};
ostream&
operator<<(ostream& os , const Test& obj)
{
os<<obj.m_ni;
return os;
}
istream&
operator>>(istream& in, Test& obj)
{
if(in)
in>>obj.m_ni;
else
obj = Test(33);
return in;
}
int main()
{
Test t(100);//Test t() 不行 Test t就可以了,忘记为什么了
cout<<t;
cin>>t;
cout<<t;
getch();
return 0;
}