class String { public: friend ostream& operator<<(ostream&, const String&); friend istream& operator>>(istream&, String&); //other members private: char *str; }; ostream& operator<<(ostream& os, const String& str){ int i=0; while (*(str.str+i)!='class String { public: friend ostream& operator<<(ostream&, const String&); friend istream& operator>>(istream&, String&); //other members private: char *str; }; ostream& operator<<(ostream& os, const String& str){ int i=0; while (*(str.str+i)!='\0') os<<*(str.str + i++); return os; } istream& operator>>(istream& is, String& str){ is>>str.str; return is; }') os<<*(str.str + i++); return os; } istream& operator>>(istream& is, String& str){ is>>str.str; return is; }