Что такое правильный/канонический способ перегрузки двоичных реляционных операторов в 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), возможно, может помочь. – Rakete1111