定義一個全局運算符(它接受一個類的兩個引用並定義一個僅接受正確操作數的成員運算符)有區別嗎?全球運營商和會員運營商之間的區別
全球:
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