书签 分享 收藏 举报 版权申诉 / 101
上传文档赚钱

类型C与面向对象程序设计解析课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5191942
  • 上传时间:2023-02-16
  • 格式:PPT
  • 页数:101
  • 大小:355.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C与面向对象程序设计解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    面向 对象 程序设计 解析 课件
    资源描述:

    1、12023-1-30C+与面向对象程序设计运算符重载运算符重载operator overloading张 俊2006-11-222023-1-30C+与面向对象程序设计主要内容和教学要求主要内容和教学要求掌握常用运算符的重载理解运算符重载的两种形式32023-1-30C+与面向对象程序设计为什么要重载运算符为什么要重载运算符应用系统的运算符集;为自定义类型提供简洁的表达式;Complex a,b,c;不重载运算符:a.Print();c=Add(a,b);重载运算符:cout a b;c=a+b;cout =!=赋值运算符:=+=-=*=/=I/O运算符 :一元运算符:()!-122023-1

    2、-30C+与面向对象程序设计运算符重载的形式运算符重载的形式成员函数形式:运算符函数作为类的成员非成员函数形式:l友元l外部函数(全局函数)132023-1-30C+与面向对象程序设计Complex类详解142023-1-30C+与面向对象程序设计数据成员及构造函数数据成员及构造函数152023-1-30C+与面向对象程序设计赋值运算符赋值运算符成员函数原型成员函数原型成员函数定义成员函数定义成员函数调用成员函数调用162023-1-30C+与面向对象程序设计算术运算符的重载算术运算符的重载成员函数原型成员函数原型思考:为什么只有一个加数?172023-1-30C+与面向对象程序设计加法运算符

    3、的实现及调用加法运算符的实现及调用成员函数定义成员函数定义成员函数调用成员函数调用182023-1-30C+与面向对象程序设计192023-1-30C+与面向对象程序设计复合运算的运算符复合运算的运算符成员函数定义成员函数定义成员函数原型成员函数原型202023-1-30C+与面向对象程序设计成员函数定义成员函数定义成员函数调用成员函数调用212023-1-30C+与面向对象程序设计一元运算符的重载一元运算符的重载成员函数原型成员函数原型成员函数定义成员函数定义成员函数调用成员函数调用222023-1-30C+与面向对象程序设计成员函数形式的特点成员函数形式的特点函数定义:作为类的成员函数。函

    4、数参数:二元运算符只带一个参数,一元运算符不带参数。函数调用:当前对象作为左操作数,函数参数作为右操作数。a.operator+(b)语法比较晦涩,不易理解232023-1-30C+与面向对象程序设计友元函数形式的重载友元函数形式的重载友元函数定义友元函数定义友元函数原型友元函数原型友元函数调用友元函数调用242023-1-30C+与面向对象程序设计友元函数形式的重载友元函数形式的重载252023-1-30C+与面向对象程序设计友元函数形式的特点友元函数形式的特点函数定义:作为类的友元函数函数参数:二元运算符带两个参数,一元运算符带一个参数函数调用:两个对象都作为函数的参数 operator+

    5、(a,b);是几元运算符就带几个操作数,语法符合习惯,易懂,但少用。262023-1-30C+与面向对象程序设计成员函数形式遇到的问题成员函数形式遇到的问题当运算符的左操作数不是该类的对象时,出现问题。如 Complex a,b;重载:operator+(const Complex&r)a=3+b;3不是Complex的对象,不能调用上述重载的运算符。因而不能计算。272023-1-30C+与面向对象程序设计友元函数形式的另一类用法友元函数形式的另一类用法成员函数原型成员函数原型成员函数定义成员函数定义成员函数调用成员函数调用282023-1-30C+与面向对象程序设计流插入符和提取符的重载流

    6、插入符和提取符的重载cin a b;cout a a b c;cout a b c;3a=b;4c=b+a;c=b x;5c=x+a;c=x b;312023-1-30C+与面向对象程序设计String类详解类详解自课本自课本P311开始开始322023-1-30C+与面向对象程序设计332023-1-30C+与面向对象程序设计逻辑非运算符逻辑非运算符友元函数的形式请参考P313342023-1-30C+与面向对象程序设计重载流插入和提取运算符重载流插入和提取运算符352023-1-30C+与面向对象程序设计流插入符调用分析流插入符调用分析362023-1-30C+与面向对象程序设计复制构造函

    7、数复制构造函数372023-1-30C+与面向对象程序设计赋值运算符赋值运算符382023-1-30C+与面向对象程序设计字符串连接字符串连接“+、+=”392023-1-30C+与面向对象程序设计转换运算符转换运算符有什么样的转换构造有什么样的转换构造函数,就应该提供什函数,就应该提供什么样的转换运算符么样的转换运算符数据类型转换数据类型转换算术运算算术运算赋值赋值实参传给形参实参传给形参返回值返回值402023-1-30C+与面向对象程序设计Rational类详解类详解412023-1-30C+与面向对象程序设计422023-1-30C+与面向对象程序设计求两个数的最大公约数432023-

    8、1-30C+与面向对象程序设计求两个数的最小公倍数求两个数的最小公倍数442023-1-30C+与面向对象程序设计对分数进行标准化对分数进行标准化452023-1-30C+与面向对象程序设计各种构造函数462023-1-30C+与面向对象程序设计复制构造函数复制构造函数472023-1-30C+与面向对象程序设计成员函数形式成员函数形式的重载的重载482023-1-30C+与面向对象程序设计赋值运算符的重载赋值运算符的重载492023-1-30C+与面向对象程序设计算术运算符的重载算术运算符的重载502023-1-30C+与面向对象程序设计512023-1-30C+与面向对象程序设计复合运算符

    9、复合运算符522023-1-30C+与面向对象程序设计关系运算符关系运算符532023-1-30C+与面向对象程序设计542023-1-30C+与面向对象程序设计552023-1-30C+与面向对象程序设计562023-1-30C+与面向对象程序设计572023-1-30C+与面向对象程序设计582023-1-30C+与面向对象程序设计592023-1-30C+与面向对象程序设计成员函数形式的特点成员函数形式的特点运算符重载函数作为类的成员函数。二元运算符重载函数只带一个参数,因为另外一个参数隐含为this。operator+(Complex*this,const Complex&);一元运算

    10、符重载函数不带参数。602023-1-30C+与面向对象程序设计友元函数形式友元函数形式的重载的重载612023-1-30C+与面向对象程序设计622023-1-30C+与面向对象程序设计632023-1-30C+与面向对象程序设计642023-1-30C+与面向对象程序设计652023-1-30C+与面向对象程序设计662023-1-30C+与面向对象程序设计672023-1-30C+与面向对象程序设计682023-1-30C+与面向对象程序设计请完成其定义请完成其定义692023-1-30C+与面向对象程序设计重载重载702023-1-30C+与面向对象程序设计友元函数形式重载的语法友元函

    11、数形式重载的语法712023-1-30C+与面向对象程序设计字符串的比较字符串的比较722023-1-30C+与面向对象程序设计插入符的重载插入符的重载732023-1-30C+与面向对象程序设计合乎习惯的重载形式合乎习惯的重载形式重载二元运算符时带两个参数,较好理解;书写简单:无需类名和二元作用域运算符。742023-1-30C+与面向对象程序设计两种形式的选择时机两种形式的选择时机左操作数(或者只有左操作数时)是本类的对象(引用)时,必须选用成员函数形式。左操作数不是本类的对象,必须采用非成员函数的形式,一般是友元函数。运算符函数不是类的成员函数,但是要访问类的保护或者私有成员时,也可以采

    12、用友元函数形式。752023-1-30C+与面向对象程序设计小结小结1两种形式两种形式二元运算符以成员函数的形式重载时,只带一个参数,以友元函数形式重载时,有两个参数。重载(),-和任何赋值运算符时,必须采用成员函数形式。762023-1-30C+与面向对象程序设计小结小结2两种形式两种形式单目运算符最好被重载为成员函数;具有可交换性的双目运算符最好两种形式都有(成员函数时适用左操作数为本类对象,友元函数时适用左操作数为其他类的对象)。尽量重用已有的操作和运算符。772023-1-30C+与面向对象程序设计流插入符和提取符的重载流插入符和提取符的重载782023-1-30C+与面向对象程序设计

    13、792023-1-30C+与面向对象程序设计前增量运算符的重载前增量运算符的重载Rational r(1,2);+r;802023-1-30C+与面向对象程序设计后增量运算符的重载后增量运算符的重载Rational r(-1,5);r+;812023-1-30C+与面向对象程序设计822023-1-30C+与面向对象程序设计前增量与后增量的区别前增量与后增量的区别参数的区别(主要区别)operator+();operator+(int);Rational r;+r;r.operator+();r+;r.operator+(0);/0伪值,仅仅是为了区别前增量和后增量。832023-1-30C+

    14、与面向对象程序设计区别之二区别之二返回值的区别:前增量:先修改当前对象,再返回之,因而应该返回引用。后增量:先用临时对象保存当前对象,再修改当前对象,然后返回临时对象,因而返回值。842023-1-30C+与面向对象程序设计852023-1-30C+与面向对象程序设计还有两个运算符 ()862023-1-30C+与面向对象程序设计下标运算符的重载下标运算符的重载template Type&Array:operator (int index)assert(index=0&index nSize);return pList index;Array a(10);A20=1;872023-1-30C+

    15、与面向对象程序设计函数调用运算符函数调用运算符()的重载的重载882023-1-30C+与面向对象程序设计小结小结运算符重载的形式运算符重载的形式892023-1-30C+与面向对象程序设计小结小结值返回与引用返回值返回与引用返回引用返回可以成为左值,被赋值、修改或者给其他对象赋值;成员函数引用返回可以连续调用(例如)所有赋值运算符都应该引用返回前增量应该引用返回902023-1-30C+与面向对象程序设计续上续上下标运算符引用返回可以修改返回的值希望改变当前对象的成员函数可以返回引用(例如+)912023-1-30C+与面向对象程序设计小结小结关于左值关于左值1变量可以用作左值,也可以用作右

    16、值;常量只能用作右值。2所有的赋值运算表达式都可以用作左值。3前增量和前减量可以用作左值,后增量和后减量只能用作右值。4逗号表达式可以用作左值。922023-1-30C+与面向对象程序设计5正确返回引用的函数可以成为左值。返回全局变量的引用;返回局部静态变量的引用;返回函数参数的引用;返回堆对象的引用。932023-1-30C+与面向对象程序设计返回全局变量的引用返回全局变量的引用942023-1-30C+与面向对象程序设计返回局部静态变量的引用返回局部静态变量的引用952023-1-30C+与面向对象程序设计返回参数的引用返回参数的引用962023-1-30C+与面向对象程序设计常用于运算符重载常用于运算符重载972023-1-30C+与面向对象程序设计返回堆对象的引用返回堆对象的引用982023-1-30C+与面向对象程序设计6正确返回指针的函数也可以成为左值。返回全局变量的指针;返回局部静态变量的指针;返回函数参数的指针;返回堆对象的指针。992023-1-30C+与面向对象程序设计7返回*this的成员函数可以成为左值。1002023-1-30C+与面向对象程序设计作业作业1012023-1-30C+与面向对象程序设计

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C与面向对象程序设计解析课件.ppt
    链接地址:https://www.163wenku.com/p-5191942.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库