一、運算符重載本質和使用規則
本質
運算符重載是通過函數實現的,它本質上是函數重載。
使用規則
-
並不是所有的運算符都可以重載。
能夠重載的運算符包括:+ - * / % ^ & | ~ ! = < > += -= = /= %= ^= &= |= << >> <<= >>= == != <= >= && || ++ – , -> -> () [] new new[] delete delete[]
上述運算符中,[]是下標運算符,()是函數調用運算符。自增自減運算符的前置和後置形式都可以重載。長度運算符sizeof、條件運算符: ?、成員選擇符.和域解析運算符::不能被重載。
-
重載不能改變運算符的優先級和結合性。
例如:
c4 = c1 + c2 * c3; // 加法運算符重載,c1、c2、c3、c4均是類創建的對象
等價於:
c4 = c1 + ( c2 * c3 );
乘法的優先級仍然高於加法,並且它們仍然是二元