operator <<应该实现为朋友还是成员函数?

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)

其中段落是一个字符串。


弑天下
浏览 1153回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP