CppCoreGuidelines C.161 对称操作符用非成员函数实现
15 January 2023
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; }
强化
- 标记操作符函数是成员函数的情况。