输入输出操作符重载:
#include <iostream>
#include <vector>
#include <map>
#include <exception>
using namespace std;
class test
{
public:
test(int i):t(i){}
virtual ~test();
friend ostream& operator<<(ostream &out, const test& te);
friend istream& operator>>(istream &in, test& te);
private:
int t;
char *buf;
};
ostream& operator<<(ostream &out, const test& te)
{
out << "test.t == " << te.t <<endl;
return out;
}
istream& operator>>(istream& in, test& te)
{
in>>te.t;
if(!in)
te = test(0);
return in;
}
test::~test()
{}
int main(int argc, char *argv[])
{
test te(7);
cin >> te;
cout <<unitbuf<< te; //unitbuf用于刷新所有数据输出
return 0;
}