C では、オーバーロードされた演算子はフレンド関数またはメンバー関数として実装できます。ストリーム挿入演算子「<<」に関しては、これらのアプローチのどちらを選択するかについて、特定の考慮事項を考慮する必要があります。
friend ostream & operator<<(ostream & os, const Paragraph& p) { return os << p.to_str(); }
このアプローチはストリームに一般的に使用されます。演算子の理由:
ostream & operator<<(Paragraph const& rhs);
考えたくなりますが、メンバー関数はすべてのクラス メソッドで使用する必要があるため、このアプローチは "<<" に対しては推奨されません。演算子にはいくつかの理由があります:
次のクラスを考えてみましょう:
class Paragraph { std::string m_para; public: Paragraph(std::string const& init) : m_para(init) {} std::string const& to_str() const { return m_para; } };
この場合、" <<」
以上が演算子のオーバーロードにおけるフレンド関数とメンバー関数: ` に対してフレンド関数が推奨されるのはどのような場合かの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。