第8章 运算符的重载.ppt_第1页
第8章 运算符的重载.ppt_第2页
第8章 运算符的重载.ppt_第3页
第8章 运算符的重载.ppt_第4页
第8章 运算符的重载.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章运算符重载,牙齿章节的要点:了解运算符重载的目的和特性了解运算符重载的两个茄子定义格式了解几个茄子常见运算符重载方法了解自定义类型转换,8.1阶段理论,8.1.1运算符重载,C语言引入运算符重载机制,程序员可以根据需要复盖大部分运算符(如“,”),交换类的成员函数以完成特定功能。例如,对于多类complex,重新加载加法、减法、乘法和除法运算符,以代替加法成员函数Add()、减法成员函数Sub()、乘法成员函数Mul()和除法成员函数Div()。运算符重载只能应用于类类型和枚举类型。不能重载基于内嵌类型的运算符,也不能定义不存在的运算符。重新加载操作符不会更改现有操作符的优先级、连接、语

2、法结构和操作数。运算符重载本质上也是函数的重载。8.1.2运算符重载定义,1 .成员函数格式运算符重载有两种茄子宣言格式。一种是成员函数格式,另一种是朋友函数格式。在成员函数格式中,运算符重载函数与类成员函数相同,在类主体中以operator()格式声明。其中operator是关键字,表示成员函数是运算符重载函数。引用牙齿运算符重载函数的类对象是第一个操作数,参数表中的参数是第二个操作数,因此对于单数运算符,参数表必须为空。对于双目运算子,参数表格中只有一个参数的第二个运算元。例如,在类String定义中,class String public: String上面的代码定义了一组三个运算符重载

3、函数。其中相等运算符“=”不仅支持两个字符串类对象的比较,还支持字符串类对象与字符数组格式的字符串比较。2 .friendoperator()第二种格式需要以friendoperator格式定义friendoperator函数形式的运算符重载函数,friend operator()格式在全局域中定义运算符重载函数。朋友函数形式的参数表中的第一个参数是第一个操作数,第二个参数是第二个操作数。因此,单目运算符在参数表中只有一个参数。例如,在上面的String类中,用朋友函数格式复盖等于运算符重载函数。bool operator=(const string/,3 .如何选择运算符重载格式上述两种茄子形式的运算符重载函数都是相同的。一般来说,单眼运算会在双眼运算的第一个运算元可能是其他类型的情况下,选择宇圆函数格式。分配运算符=、下标运算符、调用运算符()和类成员箭头访问运算符-的重载必须采用成员函数格式。8.1.3赋值运算符的重载通常需要重载应用于类对象的运算符,赋值运算符除外。为类对象提供默认分配操作,以完成类对象之间的按成员分配。如果默认分配作业不符合要求,您还可以重新加载分配操作符以提供其他功能。以下是示例8-1中的一些代码,说明了如何定义定义分配运算符的重载函数:class tudent public 3360 s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论