问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

c++的所有运算符都可以重载吗?

发布网友 发布时间:2022-04-29 23:50

我来回答

1个回答

热心网友 时间:2022-06-26 10:13

大多数C++运算符可以重载。运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。

单目运算符重载:

单目运算符只有一个操作数,如!a,-b,&c,*p,还有最常用的++i和--i等。由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数,如果运算符重载函数作为成员函数,则还可省略此参数。

下面以自增运算符”++“为例,介绍单目运算符的重载。

[例] 有一个Time类,包含数据成员minute(分)和sec(秒),模拟秒表,每次走一秒,满60秒进一分钟,此时秒又从0开始算。要求输出分和秒的值。

可以看到:在程序中对运算符“++”进行了重载,使它能用于Time类对象。“++”和“--”运算符有两种使用方式,前置自增运算符和后置自增运算符

针对“++”和“--”这一特点,C++约定,在自增(自减)运算符重载函数中,增加一个int型形参,就是后置自增(自减)运算符函数。

双目运算符重载:

双目运算符(或称二元运算符)是C++中最常用的运算符。双目运算符有两个操作数,通常在运算符的左右两侧,如3+5,a=b,i<10等。在重载双目运算符时,不言而喻在函数中应该有两个参数。

[例] 定义一个字符串类String,用来存放不定长的字符串,重载运算符“==”、“<”和“>”,用于两个字符串的等于、小于和大于的比较运算。

有了这个基础后,再增加其他必要的内容。现在增加对运算符重载的部分。为便于编写和调试,先重载一个运算符“>”。程序如下:

程序运行结果为1。

这只是一个并不很完善的程序,但是,已经完成了实质性的工作了,运算符重载成功了。其他两个运算符的重载如法炮制即可。

C++中?:运算符为什么不能重载?

C++标准规定:8.1 并不是所有的操作符都能被重载。除了. ,.* ,:: ,? : ,sizeof,typeid这几个运算符不能被重载,其他运算符都能被重载8.2 重载不能改变该运算符用于内置类型时的函义,程序员不能改变运算符+用于两个int型时的含义。8.3 运算符函数的参数至少有一个必须是类的对象或者...

c语言,c++,哪些运算符不能重载

原则上来说,“.”运算符是可以被重载的,就像“-&gt;”一样。不过,这会带来语义的混淆——我们到底是想和“.”后面的对象打交道呢,还是“.”后面的东东所实际指向的实体打交道呢?看看这个例子(它假设“.”重载是可以的):class Y { public:void f();// ...};class X { // assume tha...

关于运算符重载,下列说法正确的是()。

A.所有的运算符都可以重载。B.通过重载,可以使运算符应用于自定义的数据类型。C.通过重载,可以创造原来没有的运算符。D.通过重载,可以改变运算符的优先级。正确答案:B

下列关于运算符重载的描述中,错误的是( )。

【答案】:C C。【解析】除了·、*、→*、::、?:这五个运算符外,其他运算符都可以重载。=、[]、()、→以及所有的类型转换运算符只能作为成员函数重载。口作为成员函数重载时,应完成“下标访问”操作,使得向指定下标处的元素赋值或取值成为可能。

c++的所有运算符都可以重载吗?

大多数C++运算符可以重载。运算符重载是一种形式的C++多态。运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。单目运算符重载:单目运算符只有一个操作数,如!a,-b,&amp;c,*p,还有最常用的++i和--i等。由于单目运算符只有一个操作数,因此运算符重载函数只有一个参数,如果运算符...

c语言,c++,哪些运算符不能重载?

显然,这是绝对禁止的。如果有两个参数,这两个参数可以都是类对象,也可以一个是类对象,一个是C ++标准类型的数据,如Complex operator + (int a,Complex&amp;c){return Complex(a +c.real, c.imag);}它的作用是使一个整数和一个复数相加。7) 用于类对象的运算符一般必须重载,但有两个例外,...

C++中的运算符重载,帮我详细介绍下

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

c语言和c++的区别和联系

4、运算符重载:C语言不支持运算符重载,而C++语言支持运算符重载。运算符重载是指重新定义运算符的行为,使其适用于自定义类型。二、C语言和C++语言的联系 1、语法相似:C++语言是C语言的扩展,因此它们有很多相似之处。例如,它们的基本语法、控制结构和数据类型等都非常相似。2、编译器:g和Visual ...

什么是运算符重载?

1. 运算符重载的作用是什么?它允许你为类的用户提供一个直觉的接口。运算符重载允许C/C++的运算符在用户定义类型(类)上拥有一个用户定义的意义。重载的运算符是函数调用的语法修饰:class Fred { public:// ...};if 0 // 没有算符重载:Fred add(Fred, Fred);Fred mul(Fred, Fred);Fred ...

关于C++重载运算符

所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能。运算符也可以重载 运算符重载是对已有的运算符赋予多重含义 必要性 C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)(一) C++不允许用户自己定义新的运算符,只能对...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
上海到舟山旅游2-3日游,住定海,玩朱家尖和桃花岛,请推荐路线 ...王者荣耀》就闪退,还显示很抱歉王者荣耀已停止运行怎么解决? 暑期皖南自驾旅游攻略,暑期皖南自驾旅游攻略 【Excel】如何将标题行固定在顶部 “岁岁长春”的出处是哪里 各位老师,大棚土壤碱性的原因是什么,表现是什么,如何改良呢 ...②高锰酸钾完全分解后的固体 ③硬水 ④软水 ⑤液态氧 ..._百度... ...⑤液氧 ⑥蒸馏水 ⑦高锰酸钾,属于混合物的是 ... 拼多多上的药正规吗?为什么便宜? 拼多多上面的药怎么这么便宜?那么便宜是真的吗? 如果我说我是真的爱你。 iphone怎么设置文件保险柜 场所是指什么地方,家里可以称场所吗? 如果我说 我真的爱你 谁来收拾 那些被破坏的友谊 如果我忍住这个秘密 温暖冬天 就会遥遥而无期 C++运算符重载详细讲解 如果我说我真的爱你,谁来收拾这被破坏的友谊…如果我能忍住这个秘密… 那首歌的歌词 c++怎么重载运算符? 场所什么意思? 鹤望兰的花期是几月? c++重载运算符号 “如果我说了真的爱你,谁来收拾这被破坏的友谊”是哪首歌的歌词?求大神指点 哪位能说一下“如果我说我真的爱你”这句歌词是那首歌的,? 鹤望兰什么时候开花?几月份 有一首歌的一句是:“如果我说我真的爱你”,后面我不记得了这首歌是? 苹果x手机保密柜怎么弄? 有一首歌歌词中有一句“如果我真的说爱你”是那首歌啊? “如果我说真的爱你”是哪首歌上面的歌词 有首歌里面有句歌词是,如果我是真的爱你,这歌叫什么名字啊,歌词 如果我说我真的爱你,那么谁来收拾这被破坏的友谊。这是哪首歌曲里面的歌词 如果我说我是真的爱你,谁来收拾这个被破坏的友谊,是啥歌啊 场合是什么意思 怎样让鹤望兰常年开花? c++中为什么运算符的重载要与类联系在一起? 如果我说我真的爱你,谁来收拾那些被破坏的友谊! 这句话什么意思???_百度问一问 名词は 名词【场所】です可以解释为什么什么在某某地方吗 string重载bool operator==(const string&s1,const string&s2);&#47;&#47;请问.调用这个函数 日语中“场所”有“所在地”的意思,那“我在中国”能不能说“私の场所は中国” 请问我苹果手机的密码保险箱密码忘记要怎么找回 操作符的重载方法 场合的意思? 苹果可以放在保险柜里吗? 这两种运算符++重载有什么区别 还有为什么参数是int 不是对象 鹤望兰的花期要怎样调控? 气氛场所是什么意思? C++中的全局操作符重载,求救 经营活动场所是什么意思? C++运算符重载的方法 运算符重载的方法 消毒场所是什么意思? 运算符重载为成员函数或全局函数怎么从形式上来判断呢?友元函数呢?
  • 焦点

最新推荐

猜你喜欢

热门推荐