C++重载操作符的优先级

重载操作符不能改变操作符的优先级和语法特性。例如上一节复数类中的加法操作符重载函数,重载后加法的优先级仍然保持不变,重载后仍然为二元操作符。

举个例子:
int main()
{
    complex c1,c2,c3,c4;
        //......
    c4 = c1 + c2 * c3;
    return 0;
}
继续沿用上一节例 1 中的 complex 复数类,我们定义了该类的四个对象,然后进行四则运算,c4=c1+c2*c3;语句等同于c4=c1+(c2*c3);,虽然在复数类中重载了加减乘数四个操作符,但是并不会改变它们为二元操作符的特性,同时也不会改变它们的优先级,因此对于重载后的加法操作符而言,其优先级是低于乘法操作符的。

重载后操作符的用法不会被改变,比如加法操作符总是出现在两个操作数之间,重载后,加法操作符仍然必须将加法操作符置于两个操作数之间。比如例 1 中的加法和乘法操作符在重载后仍然保持原有的使用方法。