为了账号安全,请及时绑定邮箱和手机立即绑定

c++运算符+号重载

c++运算符+号重载

C++
慕尼黑5688855 2018-08-16 10:09:24
/*/*float Circle::operator + (Circle &circle2) const {return(PI * circle2.radius *circle2.radius + PI * radius * radius);}*/用这种方式float area;//area = circle1 + circle2;可以返回float的area而现在没被注释掉的部分用friend Circle operator+(const Circle& circle1,const Circle& circle2);编译出现错误,严重性 代码 说明 项目 文件 行 禁止显示状态错误 C2440 “=”: 无法从“Circle”转换为“float” Project7 该如何更改
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

很明显你这个友元函数的返回实际值类型和声明的返回值类型不搭配,而且无法完成隐式转换,所以才会报错。

看你意图你想怎么用法:

如果想得到数值类型,那么返回值类型改成float没毛病,就是楼上的解决办法;

如果你想得到是Circle类,那么你要把返回语句修改一下,可以修改成如下

https://img1.sycdn.imooc.com//5b8f97310001483007390235.jpg

查看完整回答
反对 回复 2018-09-05
  • 1 回答
  • 0 关注
  • 647 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信