第一种方式:作为类外部函数
void display(ostream &); //display the string
//ostream & operator<<(ostream &);
};
ostream & operator<<(ostream &out,CString & s);
void w1::CString::display(ostream & out)
{
out<<store;
}
ostream & w1::operator<<(ostream & out,CString &s)
{
out<<number<<": ";
s.display(out);
number++;
return out;
}
调用方法:
CString myString(s,n);
cout<<myString<<endl;
第二种方法:作为类友元函数
class thing {
std::string name;
public:
std::string get_name() const { return name; }
// ...
};
std::ostream &operator<<(std::ostream &os, thing const &t) {
return os << t.get_name();
}