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