Provide a friend operator<<:
class Fred {
public:
friend ostream& operator<< (ostream& o, const Fred& fred)
{ return o << fred.i; }
//...
private:
int i; //just for illustration
};
We use a friend rather than a member since the "Fred" parameter is
second rather than first. Input is similar, but the signature is:
istream& operator>> (istream& i, Fred& fred); // ^^^^^------- not "const Fred& fred"!