定义一个全局运算符(它接受一个类的两个引用并定义一个仅接受正确操作数的成员运算符)有区别吗?全球运营商和会员运营商之间的区别
全球:
class X
{
public:
int value;
};
bool operator==(X& left, X& right)
{
return left.value == right.value;
};
会员:
class X
{
int value;
bool operator==(X& right)
{
return value == right.value;
};
}
优良作法申报参数不仅参考,但也是const,只要你确定你可以。比较运算符可以是const并且肯定可以采用const引用。 (如果没有别的,这是承诺编译器,它允许它做更多的优化。) – 2016-03-16 21:08:16