C++运算符重载函数作为类成员函数和友元函数

C++运算符重载函数作为类成员函数和友元函数

ID:39453820

大小:36.63 KB

页数:14页

时间:2019-07-03

C++运算符重载函数作为类成员函数和友元函数_第1页
C++运算符重载函数作为类成员函数和友元函数_第2页
C++运算符重载函数作为类成员函数和友元函数_第3页
C++运算符重载函数作为类成员函数和友元函数_第4页
C++运算符重载函数作为类成员函数和友元函数_第5页
资源描述:

《C++运算符重载函数作为类成员函数和友元函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C++运算符重载的方法运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:  函数类型operator运算符名称(形参表列)  {    //对运算符的重载处理  }例如,想将”+”用于Complex类(复数)的加法运算,函数的原型可以是这样的:  Complexoperator+(Complex&c1, Complex&c2);在上面的一般格式中,operator是关键字,是专门用于定义重载运算符的函数的,运算符名称就是C+

2、+提供给用户的预定义运算符。注意,函数名是由operator和运算符组成,上面的operator+就是函数名,意思是“对运算符+重载”。只要掌握这点,就可以发现,这类函数和其他函数在形式上没有什么区别。两个形参是Complex类对象的引用,要求实参为Complex类对象。在定义了重载运算符的函数后,可以说,函数operator+重载了运算符+。在执行复数相加的表达式c1+c2时(假设c1和c2都已被定义为Complex类对象),系统就会调用operator+函数,把c1和c2作为实参,与形参进行虚实结合。为了说明在运算符重载后,执行表达式就是调用函数的过程,可以把两个整数相加也想像为调

3、用下面的函数:intoperator+(inta, intb){  return(a+b);}如果有表达式5+8,就调用此函数,将5和8作为调用函数时的实参,函数的返回值为13。这就是用函数的方法理解运算符。可以在例10.1程序的基础上重载运算符“+”,使之用于复数相加。[例10.2]改写例10.1,重载运算符“+”,使之能用于两个复数相加。1.#include2.usingnamespacestd;3.classComplex4.{5.public:6.Complex(){real=0;imag=0;}7.Complex(doubler,doublei){real

4、=r;imag=i;}8.Complexoperator+(Complex&c2);//声明重载运算符的函数9.voiddisplay();10.private:11.doublereal;12.doubleimag;13.};14.ComplexComplex::operator+(Complex&c2)//定义重载运算符的函数15.{16.Complexc;17.c.real=real+c2.real;18.c.imag=imag+c2.imag;19.returnc;20.}21.22.voidComplex::display()23.{24.cout<<"("<

5、,"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。