Classes and class hierarchies
C.161
Используйте нечленовые функции для симметричных операторов
Причина
Если использовать функции-члены, потребуются две. Если не использовать нечленовую функцию для (например) ==, то a == b и b == a будут тонко различаться.
Пример
bool operator==(Point a, Point b) { return a.x == b.x && a.y == b.y; }
Контроль
Помечать функции-члены-операторы.