第9章 运算符重载.ppt

第9章 运算符重载.ppt

ID:48142131

大小:121.00 KB

页数:18页

时间:2020-01-17

第9章  运算符重载.ppt_第1页
第9章  运算符重载.ppt_第2页
第9章  运算符重载.ppt_第3页
第9章  运算符重载.ppt_第4页
第9章  运算符重载.ppt_第5页
资源描述:

《第9章 运算符重载.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章运算符重载9.1运算符重载概述C++几乎所有的运算符都可以重载,但下列运算符不允许重载:.、.*、::、?:、->在运算符重载时需牢记以下几点:(1)只能重载C++允许的已有的运算符;(2)C++运算符重载时,不能改变运算符操作对象的个数,不能改变运算符原有的优先级和结合性,不能改变运算符原有的语法规则;(3)运算符重载含义必须清楚,不能有二义性;(4)运算符重载函数必须满足C++中函数的所有性质。运算符重载可以使程序更加简洁,使表达式更加直观,增强程序的可读性。运算符重载有如下两种形式:(1)重载为类的成员函数将运算符重载函数说明为成员函数的格式如下:<函数类型>

2、operator<运算符>(<形参表>){<函数体>}其中,<函数类型>规定了重载运算符的返回值类型,operator是定义运算符重载函数的关键字,<运算符>给定了要重载的运算符名称,是C++允许重载的运算符。<形参表>中给出重载运算符所需要的参数和类型。当运算符重载为类的成员函数时,函数的参数个数比原来运算数的个数要少一个(后缀++和后缀--除外)。原因是重载为类的成员函数时,如果某个对象使用重载了的成员函数,自身的数据可以直接访问,就不需要再放在参数表中进行传递,少了的运算数个数就是该对象本身。9.2单目运算符重载在C++中,单目运算符有前缀(后缀)增量运算符++和前

3、缀(后缀)减量运算符--。前缀增量(减量)运算符重载为成员函数时不需要参数,重载为友元函数时需要1个参数。使用前缀增量(减量)运算符时,对象需要先返回值,再进行增量修改,故一般需要创建一个临时对象,记录原来对象的值,函数先把对象增值,再返回原来对象值的临时对象成员函数重载格式:<返回类型>operator++()友元函数重载格式:friend<返回类型>operator++(参数1)成员函数默认调用格式:++类实例名成员函数显示调用格式:类实例名.operator++()友元函数默认调用格式:++参数1友元函数显示调用格式:operator++(参数1)其中<返回类型>一

4、般为类引用,参数1为类实例名或其引用。9.3双目运算符重载运算符重载为成员函数就可以自由地访问本类的数据成员,在使用时通过该类的某个对象来访问重载的运算符。对于双目运算符,一个运算数是对象本身的数据,由this指针给出,另一运算数则需要通过运算符重载函数的参数表来传递。对于双目运算符B,如果要重载B为类的成员函数,能实现表达式“obj1Bobj2”,其中obj1为A类的对象,则应把B重载为A类的成员函数,且只有一个形参,形参类型为obj2所属的类型。经过重载后,表达式obj1Bobj2相当函数调用“obj1.operatorB(obj2)”。9.4关系运算符重载在C++中

5、,关系运算符<、>、==和>=等同样可以实现运算符重载,关系运算符重载函数必须返回逻辑值。成员函数重载格式:booloperator关系运算符(参数1)友元函数重载格式:friendbooloperator关系运算符(参数1,参数2);成员函数默认调用格式:类实例名关系运算符参数1成员函数显示调用格式:类实例名.operator关系运算符(参数1)友元函数默认调用格式:参数1关系运算符参数2友元函数显示调用格式:operator关系运算符(参数1,参数2)其中两个参数中至少有一个类实例名或类引用。9.5赋值运算符重载9.5.1复合赋值运算符重载成员函数重载格式:类引用op

6、erator复合赋值运算符(参数1)友元函数重载格式:friend<返回类型>operator复合赋值运算符(类引用,参数2)成员函数默认调用格式:类实例名复合赋值运算符参数1成员函数显示调用格式:类实例名.operator复合赋值运算符(参数1)友元函数默认调用格式:类引用复合赋值运算符参数2友元函数显示调用格式:operator复合赋值运算符(类引用,参数29.5.2直接赋值运算符重载赋值运算符只能作为成员函数重载,返回值需要声明为引用类型,常使用return(*this)语句返回,它的参数一般要求只读(const类型)。赋值运算符“=”重载函数一般与拷贝重载函数同时

7、出现。成员函数重载格式:类引用operator=(参数1)成员函数默认调用格式:类实例名=参数1成员函数显示调用格式:类实例名.operator=(参数1)9.6下标运算符重载下标运算符[]通常用于取数组的某个元素,下标运算符重载可以实现数组下标的越界检测等。下标运算符只能作为成员函数重载,不能作为类的友元函数重载。成员函数重载格式:<返回类型>operator[](<参数1>)成员函数默认调用格式:类实例名[参数1]成员函数显示调用格式:类实例名.operator=(参数1)参数1一般采用整型参数。9.7运算符new与del

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

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

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