c++用友元函数进行运算符重载的问题

声明:friendComplexoperator+(constComplex&,constComplex&);书上说这里如果没有const,作为左值的实参不能被转换,如c... 声明:friend Complex operator+(const Complex &,const Complex &);

书上说这里如果没有const,作为左值的实参不能被转换,如c=c+d和c=d+c编译时均不通过。
我想知道为什么.希望能详细解释一下
展开
 我来答
水上漂汤
2015-02-04 · TA获得超过1万个赞
知道大有可为答主
回答量:1830
采纳率:71%
帮助的人:1422万
展开全部
没听说过这种说法。没有const修饰符就不能使用常量作为参数
c = 1+d不被允许,c= d + 1也不行
更多追问追答
追问
这里的实参应该都是变量吧?它的意思貌似是没有const实参类型就不能强制转化
追答
const不影响类型转换。引用传值可以节省开销,所以用Complex&,同时加法的左右操作数不应该被改变,所以定义成const,变量、常量都可以作为参数。至于类型转换,是由构造函数决定的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式