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

运算符重载规则问题

发布网友 发布时间:2022-05-01 12:50

我来回答

2个回答

热心网友 时间:2023-10-13 08:14

如果声明改为:
Oprea operator+(Oprea);
定义改为:
Oprea Oprea::operator+(Oprea c2)
{
Oprea temp;
temp.real=c2.real+real;
temp.imag=c2.imag+imag;
return temp;
}

也就是去掉c2的引用,采用传址,你的2个用法就都可以了。

你的+操作符要求右值是一个引用,c1可以作为引用参数,所以c3=Oprea(3,0)+c1;是通过的。
Oprea(3,0);只是一个临时量,不能作为右值,不具备引用的基本特性,所以c3=c1+Oprea(3,0); 不行。

去掉c2的引用,则+的右值只需要是一个Oprea实例。你的2种使用就都可以。

看你需要怎么用了。
引用参数,能避免传参时对类实例的重新构造。当然,指针参数也能达到一样的效果。

热心网友 时间:2023-10-13 08:15

两个都可以,编译出错了???
操作符重载有什么限制啊?

4 重载不能改变运算符的优先级。5 重载不能改变运算符的结合律。6 重载不能改变运算符操作数的个数。比如+需要两个操作数,则重载的+也必须要有两个操作数。

下列有关运算符重载的叙述中,正确的是( )。

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

运算符重载的原则是什么?

1、重载后的操作符,必须至少有一个操作数是用户定义的类型。2、不能违反操作符的句法规则,比如用“+”计算两个对象的差。3、不能定义新的操作符,要使用原有的。4、有一些操作符是不能重载的,但是绝大部分的算术运算符和逻辑运算符都可以重载。

C/C++重载运算符operator

重载运算符时,需注意参数限制,二元运算符必须有明确的左右操作数,不能像函数那样自由设置参数。比如,自增自减操作符有前缀和后缀形式,前缀调用operator++(),后缀调用operator++(int)。一元操作符如->、*等,重载时通常无参数,而二元操作符如+、-则需要一个对象作为参数。像输入输出运算符(如ist...

重载一个函数的条件是什么

也增强了程序的可读性。C++运算符重载的相关规定如下:不能改变运算符的优先级;不能改变运算符的结合型;默认参数不能和重载的运算符一起使用;不能改变运算符的操作数的个数;不能创建新的运算符,只有已有运算符可以被重载;运算符作用于C++内部提供的数据类型时,原来含义保持不变。

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

比如+需要两个操作数,则重载的+也必须要有两个操作数。可看到,c++之所以不允许重载?:运算符,是考虑到?:运算符的条件特性。运算符的重载实质是函数的调用 比如 A?B:C 假设重载函数原型 operator ?: (A,B,C)那么,其跳转性质就不复存在了。举例说明:int a=0,b=0;bool p = true;p?

c++运算符重载的调用的具体规则是怎样的?谢谢

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

运算符重载必须遵循哪些原则

1、重载后的操作符,必须至少有一个操作数是用户定义的类型。2、不能违反操作符的句法规则,比如用“+”计算两个对象的差。3、不能定义新的操作符,要使用原有的。4、有一些操作符是不能重载的,但是绝大部分的算术运算符和逻辑运算符都可以重载。

什么是运算符重载?

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

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

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

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
广西浦北县民政局今年春节几时才放假? 怎样在Excel中画柏拉图的二八线? 郎酒鉴定真假要去哪里,鉴定方法分享 郎酒酒瓶有收藏价格吗,收藏的注意事项有哪些?(郎酒瓶子值钱吗) 郎酒酒瓶有收藏价值吗,收藏酒瓶要注意什么(郎酒瓶子值钱吗) 《战舰少女R》平海值得练吗介绍_《战舰少女R》平海值得练吗是什么_百... 黄铜镀金和钛钢镀金有啥区别 北部湾大学研究生有哪些专业 北部湾大学的研究生文评在全国的含金量重吗 极品飞车9追击的圆圈是 什么是C++重载? C++中的运算符重载,帮我详细介绍下 c++运算符重载的调用的具体规则是怎样的?谢谢 c语言,c++,哪些运算符不能重载? 运算符重载的原则是什么? 统计学中,对于调查问卷的多项选择如何分析 问卷信效度分析,其中有多项选择题,如何进行?还有重复测试的效度分析? 您好,我想咨询一下,如果一个问卷中有包含2到多选题,如何对该问卷进行信效度分析呢? 厕所下水道堵了,陕西西乡那有捅下水道的 调查问卷中多选的统计分析 西乡疏通厕所多少钱,西乡疏通下水道多少钱,西乡疏通 虾和黑木耳和香菇能一起包饺子吃吗? 调查问卷中多项选择的统计及分析方法 汉中西乡下水道,你好我家厨房下水道堵塞请问有什么办法疏通吗? 调查问卷中有多选题怎么做信度分析 qq登陆提示(错误码0*OOO60008) 对于问卷的多选题用spss中哪个分析 华为手机怎么打开个人热点分享的手机还是上不了网啊? 调查问卷中有多选题怎么录入数据后做信度分析? 小米手机在重庆市长寿区有保修点吗 C++语言对运算符重载规定了那些限制 C++里什么是运算符重载?在什么情况下用? 巴固产的正压式呼吸器多少钱一台 运算符重载减法运算符 上海正压式空气呼吸器价格大概多少?有什么注意特点吗? C++里重载了的运算符是否还保持原来的优先级别? 正压式空气呼吸器6.8L气瓶,充一罐要多少钱? c++运算符重载分类总结 正压式空气呼吸器怎么使用啊,它的价格是多少啊,哪里有卖的,谁能告诉我一下,谢谢! 运算符重载必须遵循哪些原则 关于C++重载运算符 买一批专业的呼吸器,大家有没有什么好用的正压式呼吸器推荐? 如何制定婴儿喂养时间表 科学喂养 喂奶时间应该按开始 新生儿喂奶时间和量 新生儿记录吃奶时间。从开始记录还是吃完结束 婴儿吃奶次数及时间 国家规定喂奶时间多久 电脑安装金蝶卸载不掉怎么办 佛山市佑丰国际货运代理有限公司怎么样?
  • 焦点

最新推荐

猜你喜欢

热门推荐