第十三章运算符重载.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十三章运算符重载.ppt

类类型转换 类类型是指某个对象的数据类型为类,而不是标准的数据类型。在C++中,标准的数据类型与类类型之间的转换有三种方法: 通过构造函数转换:通过构造函数能将标准数据类型向类类型转换,但不能将类类型转换为标准类型。 通过类类型转换函数转换:要将类类型转换为标准数据类型时,需要采用显式类型转换机制,定义类类型转换函数。 通过运算符重载实现类型转换:可以实现标准类型的数据与类对象之间的运算。 其中,通过类类型转换函数转换需要定义一个类的类型转换函数。一般来说,C++中定义一个类的类型转换函数的形式为: 类名::operator type() { // return type类型的数据 //返回type类型的对象 } 1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司 第十三讲:运算符重载 杨章伟 e-mail:jtclass@163.com 课程内容安排 运算符重载简介 运算符重载的形式 特殊运算符的重载 类类型转换 综合练习 思考和习题 运算符重载简介 简单来说,运算符重载是实现编译时的多态性的另外一种形式。运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时,导致不同类型的行为。 运算符重载的实质是函数重载。事实上,C++语言中的每一个运算符对应着一个运算符函数,在实现过程中,把指定的运算表达式中的运算符转化为对运算符函数的调用,而表达式中的运算对象转化为运算符函数的实参,这个过程是在编译阶段完成的。 运算符重载的特点 尽管运算符重载是一种特殊的函数重载,但相比函数重载,运算符重载有着自身的一些特点。使用operator关键字对重载函数进行标识和定义。运算符有3种形式,即中缀、后缀、前缀,它们的operator表示形式如表13-1所示。 一元 operator ++(a) a++ 后缀 一元 operator-(a,0) -a 前缀 二元 operator +(a,b) a+b 中缀 参数个数 operator表示形式 常规表示 运算符分类 可重载的运算符 需要读者注意的是,并不是所有的运算符都能被重载,下班列出了可被重载的运算符。 + - * / % ^ | ~ ! = += -= *= /= %= ^= = |= = = == = = = || = = == = = = || ++ - {} () - , new new[] delete elete[] 类型转换运算符 运算符重载的形式 运算符的重载形式有两种: 一种是重载为类的成员函数, 一种是重载为类的友元函数, 重载为类的成员函数 将运算符重载为它将要操作的类的成员函数,称为成员运算符函数。实际使用时,总是通过该类的某个对象访问重载的运算符。一般来说,成员运算符函数在类内进行声明,在类外进行定义。成员运算符在类内声明的一般形式为: 返回类型 operator运算符(参数表); 在类外定义的一般形式为: 返回类型 类名∷ operator运算符(参数表) { 函数体 } 运算符重载为类的友元函数 将重载的运算符函数定义为类的友元函数,称为友元运算符函数。友元运算符函数不是类的成员,其在类内声明原型,在类外定义函数本身。由于友元运算符函数不是类的成员函数,不属于任何一个类对象,所以没有this指针,因此,重载双目运算符时要有两个参数,重载单目运算符时只要一个参数就可以了。一般来说,友元运算符函数在类内声明的一般形式为: friend返回类型 operator运算符(参数表); 在类外定义的一般形式为: 返回类型 operator运算符(参数表) { 函数体 } 特殊运算符的重载 “++”和“--”的重载 赋值运算符“=”的重载 下标运算符“[ ]”的重载 综合练习 该范例关于给复数运算重载复数的四则运算符。复数由实部和虚部构造,可以定义一个复数类,然后再在类中重载复数四则运算的运算符。 思考和习题 C++中为什么要支持运算符重载,其好处如何体现? 运算符重载的规则有哪些? 运算符重载有两种形式,其分别是什么? 写一个程序测试输入的长度能否构成一个三角形。构成三角形的条件是任意两边之和大于第三边。 Oracle Database 10g: Administration Workshop II 1-* 1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档