版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、使用面向对象程序设计语言C、电子科技大学电脑学院、第1、5章运算符重载和编程语言编写程序时,不仅要设计新的数据类型,还要设计新类型的计算。通常,自定义类型的所有运算都以函数方式实现。一般来说,一种茄子类型的运算都用运算符表示,这很直观,意义也很简单。但是,如果在自定义类型的正上方使用操作符,编译器将无法识别操作符的含义。因此,牙齿需要特殊的机制来复盖作用于自定义类型的常规运算符的含义。这就是运算符重载简单的概念。第二、五章运算符重载,事实上C编译器里已经有了简单的运算符重载概念。考虑整数和浮点两个茄子加法运算。int a=1,b;B=a2Float c=1.0,d;D=c 2.0上述两个加法语
2、句都使用了运算符 。这符合我们的数学常识。但是,对于C编译器,两个牙齿的加法被翻译成另一个指令。也就是说,“”运算符至少有两个茄子不同的解释(实现代码)。牙齿时,我们说“”运算符重载。不幸的是,c只支持少量运算符重载。3、5章运算符重载和C扩展了C运算符重载功能,允许现有字典定义的运算符在其他上下文中有不同的解释。两个字符串类连接在一起时,class string public 3360 string string _ cat(string);String str1、str2、str3str 3=str 1 . string _ cat(str 2);第4、5章运算符重载,显然这不像str3=
3、str1 str2那么简单。但问题是,C编译器只知道运算符作用于整数和浮点数据上,而不知道运算符在上面的确切含义。因此,设计类String时,必须增加运算符的含义。通过这种方式,意义变得更明确、更容易理解。第、5、5章说明了基于预定义运算符的语义,对用户定义类型的对象添加了操作的新语义。这是运算符重载。运算符重载后优先级和结合性不变。第6,5章引文,考虑复数加法计算:class Complex double re,im;Public : complex(双r,双im)re=r;im=I;complex()re=0.0;Im=0.0complex add _ complex(complex c)
4、complex temp;temp . re=re c . re;temp . im=im c . im;Return temp。7,/整个函数体也可以简化为return Complex(re c.re,im c.im)。第5章简介,voidmain () complex obj1 (1,2),obj2 (3,4);complex obj 3=obj 1 . add _ complex(obj 2);两个复数加起来能表示成obj1 obj2吗?第9章5.1重载操作符C提供了对自定义类型使用标准定义操作符的方法。这称为运算符重载。在c规则中,如果成员函数函数名称特别,则由关键字operator和
5、运算符(例如operator)组成。Obj1.operator (obj2)是一种称为函数operator()的显示调用格式。Obj1 obj2称为函数operator()的隐式调用格式。函数操作员()称为运算符重载函数。第10,5章引文,考虑复数加法运算:class Complex double re,im;Public : complex(双r,双im)re=r;im=I;complex()re=0.0;Im=0.0complex operator(complex c)complex temp:temp . re=re c . re;temp . im=im c . im;Return t
6、emp。第11,5章介绍,5.1重载运算符voidmain () complex obj1 (1,2),obj2 (3,4);Complex obj3=obj1。obj2Obj1 obj2是obj1.operator (obj2)、12、5章简介,5.1.1运算符重载语法格式在C中,运算符通过一个运算符重载函数重载。参数可以使用两种茄子重载方法:成员函数和运算符重载函数。语法如下:(1)运算符重载函数成员函数语法格式为type class _ Name 3360: operator(表)/class _ name类定义的作业中,第13章,第5章介绍,5.1.1运算符重载语法格式(2).*,第1
7、5章,5.1.2重载运算符规则(2)说明只能重载现有C运算符。(3)重新加载运算符时,不能更改优先级、更改连接性或更改运算符所需的操作数。(4)重新加载运算符的函数不能具有基本参数。否则,操作符所需的操作数将更改。第、16、5章介绍了5.1.2重载运算符规则(5)重载运算符必须与自定义类型的对象一起使用,其中至少有一个参数应用程序节目必须是类对象(或类对象的引用)。(6)类对象中使用的运算符通常必须重载,分配运算符=和地址运算符朋友函数重载Class_Nam operator (Class_Nam,25,5章介绍,5.1重载运算符5.1.4重载和函数重载Class_Nam operator通常显示为零。(示例5-11/12),第26,5章可以重新加载5.1重载操作符5.1.5重载分配操作符“=”,用户可以定义所需的重载“=”运算符重载函数。重载运算符函数operator=无法继承,成员函数(常规重载格式:x x 3360: operator=(const x intsize;public 3360 array(i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47065-2026表面化学分析表面表征共聚焦荧光显微镜横向分辨的测量
- 可再生办公材料创新-洞察与解读
- 医疗知识安全防护-洞察与解读
- 毫米波天线集成设计-洞察与解读
- 地质数据挖掘与分析-洞察与解读
- 微纳传感器在医疗中的突破-洞察与解读
- 婴幼儿玩具安全评估-洞察与解读
- 2026年云南商务职业学院单招职业适应性测试题库含答案详解(考试直接用)
- 2026年云南国防工业职业技术学院单招职业适应性考试题库及完整答案详解1套
- 2026年上海大学单招职业技能测试题库含答案详解(夺分金卷)
- (2026年)企业春节后复工复产安全教育培训课件
- 2026春季新学期校长在全体教师大会上精彩讲话:以“四好”践初心以实干育新人
- 铁路集中修施工培训
- 电商客服服务流程与话术手册
- Python深度学习入门(从零构建CNN和RNN)
- 小学信息科技课堂中人工智能教育实践研究教学研究课题报告
- 乳甲外科科室介绍
- 小学班主任班级管理心得分享范文
- 口腔科设备管理与维护规范
- 非遗宋锦课件
- 施工变安装施工方案
评论
0/150
提交评论