// version 5 - overload a simple class #include #include #include #include class Tclass{ friend ostream & operator << (ostream &, Tclass &); private: int _x; int _y; public: Tclass(); Tclass (int, int); void show(); void expand(int); }; // quick implementation of class Tclass::Tclass(): _x(10), _y(20) {}; Tclass::Tclass(int x, int y): _x(x), _y(y) {}; void Tclass::show() { cout << "{{ " << _x << ", " << _y << "}}"; } void Tclass::expand(int factor) { _x *= factor; _y += factor; } ostream& operator << (ostream &Out, Tclass & T) { Out << "{{ " << T._x << ", " << T._y << "}}"; return Out; } main() { Tclass T(5, 10); T.show(); cout << endl; cout << T << endl; fstream tout; tout.open("test5.txt", ios::out); if (!tout) { cerr <<"Can't open output file!" << endl; exit(1); } for (int z = 0; z < 3; ++z) { tout << T; T.expand(1+z); } tout.flush(); tout.close(); }