相关疑难解决方法(0)

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

这基本上就是问题,是否有"正确"的实施方式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)

其中段落是一个字符串.

c++ operator-overloading

121
推荐指数
6
解决办法
12万
查看次数

标签 统计

c++ ×1

operator-overloading ×1