C++问题:“通过运算符重载可以改变运算符原有的操作数类型”不懂。它到底怎祥改变的啊?

如题所述

就比如说“+”号,当1+1的时候=2,但是当一个学生+一个学生的时候=?,
你可以重载“+”,自己定义“+”,让他进行你自己规定的运算,一个学生+一个学生=一盘锅包肉。嘿嘿。
就是类似的道理,希望能对你有帮助。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-14
运算符的运算本来只适于基本数据类型的操作.如int,float,char等.可以进行加减乘除等运算.但是通过运算符的重载你可以进行对任何类型的操作,可以对自己定义的类进行运算.就是说扩展了操作数类型.假设你自己定义了一个CString类,并且重载了"+"运算符,让两个字符串进行连接操作,即CString s1="abc";CString s2="efg";CString s3=s1+s2;//执行完s3="abcefg",实现了两个对象之间的操作.如果你没有重载"+"运算符,那么执行s3=s1+s2;编译器就不知道要执行什么功能了,就会报错.
第2个回答  2013-07-14
比如+ 比方说以前只能做 1+1 1.2+3.4等等重载了可疑做复数运算 (1+2e)+(2-e)得到(1+2)+(2-1)e=3+e重载运算符就是使原来的运算符有更丰富的功能

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

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

在C++中,怎么理解“->”是一个单目运算符,它的操作数时什么,返回值又是...
->的左边是变量,而右边只能是成员,由于不指定所属对象的成员本身不能作为函数参数,所以->的运算符重载函数只能被看作接受一个操作数,其返回的是一个指针(也就是说A->B的时候如果A不是指针,则解释为c->B,其中c是对A调用运算符函数->所返回的指针)...

通过运算符重载,可以改变运算符原有的( )。
重载运算符的规则如下:①c++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载;②C++不能重载的运算符只有5个;③重载不能改变运算符运算对象的个数;④重载不能改变运算符的优先级和结合性;⑤重载运算符的函数不能有默认的参数;⑥重载的运算符必须和用户定义的自定义类型的对象一起使用...

急求c++运算符重载,不能编译通过.什么原因.并求修改
错得一塔糊涂啊,一点都不正确,首先操作符重载是一个函数,你定义了反回值类型为int,却没有反回值。而且操作符重载函数的参数至少有一个必须是类的对象或者类的对象的引用。这种规定可以防止程序员运用运算符改变内置类型的函义。在你重载的+和-操作符中,没有任何一个参数是类的对象或者类的对象...

C\/C++重载运算符operator
C\/C++中的运算符重载是通过改变运算符的行为来扩展语言功能的关键。在编译过程中,运算符优先级影响着表达式树的构建,编译前端有固定规则,后端则需考虑硬件差异的优化,是编译器复杂性的重要部分。重载运算符时,需注意参数限制,二元运算符必须有明确的左右操作数,不能像函数那样自由设置参数。比如,自...

c++重载运算符号
(4) 重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。(5) 运算符重载不能改变该运算符用于内部类型对象的含义。它只能和用户自定义类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时。(6) 运算符重载是针对新类型数据的实际需要...

关于C++重载运算符
(二) C++允许重载的运算符C++中绝大部分的运算符允许重载.不能重载的运算符只有5个:(1) 成员访问运算符.(2) 作用域运算符∷ (3) 条件运算符?:(4) 成员指针运算符 (5) 编译预处理命令的开始符号 (三) 重载不能改变运算符运算对象(即操作数)的个数。(四) 重载不能改变运算符的优先级别...

你能给我讲解一下c++的下标运算符重载和函数调用运算符重载吗?我看了...
const 类型 & operator [ ] (整型变量) const; \/\/ 这是用于右值 重载原则:1. 重载的下标运算符一定是非静态成员函数 2. 函数参数一定是一个整型变量 3. 左操作数一定是this,也就是本对象 函数运算符( )的重载 使用场合:C++ 中通过重载运算符( ),可以在如同对象初始化一样,直接在对象名...

C++ 运算符重载 operator
关系运算符:==、!=、<、>、<=、>= 等 赋值运算符:=、+=、-=、*=、\/= 等 通过适当重载运算符,我们可以根据自定义类型的需求定义适当的操作行为,确保代码的正确性、预测性和可维护性。在进行运算符重载时,应遵循一些约定和最佳实践,以避免潜在的问题,如处理边界条件、避免对操作数产生副...

相似回答