C++でバイナリ・リレーショナル演算子をオーバーロードするための正しい/標準的な方法は何ですか?C++でバイナリ・リレーショナル演算子をオーバーロードする適切な方法
はそれがより良いメンバ関数、またはfriend
無料の機能を使用することですか?
例えば:
class X {
public:
...
// Use member function overloads
bool operator==(const X& rhs) const {
return m_text == rhs.m_text;
}
private:
std::string m_text;
};
か:
class X {
public:
...
// Use friend free function overloads
friend bool operator==(const X& lhs, const X& rhs) {
return lhs.m_text == rhs.m_text;
}
private:
std::string m_text;
};
[この質問](http://stackoverflow.com/questions/1691007/whats-the-right-way-to-overload-operator-for-a-class-hierarchy?rq=1)mayおそらく助けてください。 – Rakete1111