C++里重载了的运算符是否还保持原来的优先级别?

比如一个复数类,要重载+和×以实现加法和乘法,那么重载完后的运算符优先级别是否保持不变?比如×永远先于+?

运算符重载的规则

1.友元运算符的参数规则与类成员运算符的参数规则不同, 一员运算符必须显式地声明一个参数, 二员运算符必须显式地声明两个参数. 类成员运算符重载时, 参数中隐含了一 个this指针.

2. 重载运算符不能改变原有运算符的优先级, 结合性和操作数个数.

3. 重载运算符不能使用缺省参数.

4. 除赋值运算符外, 重载运算符可由派生类继承下去.

5. 运算符=、()、[]和->可作为类成员运算符, 不能作为友员运算符.

6. 运算符“.”、“::” 、“?:” 不能重载.
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-08
运算符重载的规则
1.友元运算符的参数规则与类成员运算符的参数规则不同, 一员运算符必须显式地声明一个参数, 二员运算符必须显式地声明两个参数. 类成员运算符重载时, 参数中隐含了一 个this指针.
2. 重载运算符不能改变原有运算符的优先级, 结合性和操作数个数.
3. 重载运算符不能使用缺省参数.
4. 除赋值运算符外, 重载运算符可由派生类继承下去.
5. 运算符=、()、[]和->可作为类成员运算符, 不能作为友员运算符.
6. 运算符“.”、“::” 、“?:” 不能重载.
第2个回答  2016-06-23
1.友元运算符的参数规则与类成员运算符的参数规则不同, 一员运算符必须显式地声明一个参数, 二员运算符必须显式地声明两个参数. 类成员运算符重载时, 参数中隐含了一 个this指针.

2. 重载运算符不能改变原有运算符的优先级, 结合性和操作数个数.

3. 重载运算符不能使用缺省参数.

4. 除赋值运算符外, 重载运算符可由派生类继承下去.

5. 运算符=、()、[]和->可作为类成员运算符, 不能作为友员运算符.

6. 运算符“.”、“::” 、“?:” 不能重载.
第3个回答  2016-05-18
优先级是不会变的
第4个回答  2009-06-19
运算符重载的时候最好不要改变优先级,容易混淆,而且可读性也不好

C++里重载运算符会不会影响整体程序的运行效率
不会,因为这些都是编译期就定位好函数入口的,你可以理解成编译期就完成了重定向。

求助,关于一道C++函数重载的问题
1、运算符重载不改变操作符原先的优先级、结合性和操作数数目,++是单目操作符,所以1不会成立的。你有这样的问题大概是因为双目操作符比如*,可以有x.operator*(y)这种写法吧? 但是这个不改变*是二目操作符的事实。C++规定:双目操作符重载作为成员函数时只能有一个形参,调用方为左操作数,形参...

C++中的运算符重载,帮我详细介绍下
运算符重载为类的用户提供了更直观的接口,使类类型的对象也可以像普通变量一样进行运算符的表达式运算。运算符重载允许C\/C++的运算符在用户定义类型(类)上拥有一个用户定义的意义。二、运算符重载的规则 (1)C++中的运算符除了少数几个以外,全部可以重载,而且只能重载已有的运算符。可以重载的运算符...

c++运算符重载的调用的具体规则是怎样的?谢谢
1.c++中的运算符除了少数几个(如:类属关系运算符 . ,成员指针运算符 .* ,作用域分辨符 ::, 三目运算符 ?:等吧)外,全部可以重载,而且只能重载c++中已经有的运算符。2.重载之后运算符的优先级和结合性不会发生改变。3.运算符重载时针对新类型的数据的实际需要,对原有运算进行适当...

什么是C++重载?
重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题,不能只有函数...

c++重载运算符号
(2) 重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。(3) 运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。(4) 重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。(5) ...

函数重载的过程属于什么关联
C++运算符重载的相关规定如下:(1)不能改变运算符的优先级。(2)不能改变运算符的结合型。(3)默认参数不能和重载的运算符一起使用。(4)不能改变运算符的操作数的个数。(5)不能创建新的运算符,只有已有运算符可以被重载。相关知识:从某种意义上说,重载函数是方便了函数的使用者。在前一...

C++|运算符优先级的合理性理解
逻辑运算符的优先级通常高于关系运算符,这是因为逻辑运算符处理的是更为复杂的逻辑关系。最后,成员运算符.比解引用运算符具有更高的优先级,这是因为成员运算符将基址与偏移地址结合为一个整体来引用内存块,这种自然的结合方式赋予了它更高的优先级。这种设计逻辑使得成员访问操作更加清晰、直观。

关于C++重载运算符
(四) 重载不能改变运算符的优先级别。(五) 重载运算符的函数不能有默认的参数,否则就改变了运算符参数的个数,与前面第(3)点矛盾。(六) 重载的运算符必须和用户定义的自定义类型的对象一起使用,其参数至少应有一个是类对象(或类对象的引用)。也就是说,参数不能全部是C++的标准类型,以防止...

重载函数定义
关于C++中的运算符重载,有一些特定的规则需要遵守。首先,重载后的运算符不能改变其原有的优先级和结合性。其次,不能在重载运算符中使用默认参数。另外,操作数的数量也不能改变,只能重载已有的运算符。最后,当运算符作用于C++内置的数据类型时,其原有的行为保持不变,不能创建新的运算符。总的来...

相似回答