/*/*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类,那么你要把返回语句修改一下,可以修改成如下
- 1 回答
- 0 关注
- 647 浏览
添加回答
举报
0/150
提交
取消