这基本上就是问题,是否有"正确"的实施方式operator<<?读这个我可以看到类似的东西:
friend bool operator<<(obj const& lhs, obj const& rhs);
Run Code Online (Sandbox Code Playgroud)
喜欢这样的东西
ostream& operator<<(obj const& rhs);
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么要使用其中一个.
我的个人案例是:
friend ostream & operator<<(ostream &os, const Paragraph& p) {
return os << p.to_str();
}
Run Code Online (Sandbox Code Playgroud)
但我可能会这样做:
ostream & operator<<(ostream &os) {
return os << paragraph;
}
Run Code Online (Sandbox Code Playgroud)
我应该根据这个决定做出什么理由?
注意:
Paragraph::to_str = (return paragraph)
Run Code Online (Sandbox Code Playgroud)
其中段落是一个字符串.