15 January 2023

C++ 核心指南目录

C.161: Use non-member functions for symmetric operators

理由

如果你使用成员函数,就得定义两个。不然的话,就用非成员函数,对于 ==, a = b, b = a 这类操作,就只要定义一次就好了。

例子

bool operator==(Point a, Point b) { return a.x == b.x && a.y == b.y; }

强化

  • 标记操作符函数是成员函数的情况。