运算符重载

CComplex& operator +=(const CComplex &r_c) 
CComplex operator +=(const CComplex)
就差一个&两者有什么不同哦?

记住:操作符重载函数,他只是一个函数,他是普通的函数,只是函数名称有一点特别而已,比如CComplex& operator +=(const CComplex &r_c) 这里的函数名称是operator +=,其他的东西都与函数完全一样,有反回类型,有形参。
你问的问题是有关参数传递问题,操作符函数可以按值传递也可以按引用传递,这要根据操作符而定,比如对于+运算符既可以把对象按值传递给操作符函数也可以按引用传递给操作符函数,但+操作符不会改变原操作数的值,所以应把传递类型声明为const,比如hyong operator +(const hyong &a, const hyong &b){}。但对于要改变其自身值的操作符比如++运算符,就必须传递引用,且不能把该引用声明为const类型,因为如果操作数按值传递的话,传递给操作数函数的将是一个对象的副本,两个副本是独立的,不能改变到原对象的值,所以应按引用传递对象,比如hyong operator ++(hyong &a){}。

若还有不明白之处可以参看本人的文章《C++操作符重载专题》里面有介绍。

原文链接: https://www.cnblogs.com/Vulkan/archive/2012/05/08/7530295.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    运算符重载

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/49719

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午1:22
下一篇 2023年2月9日 上午1:23

相关推荐