C++教程1-10章6-运算符重载.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文档。上传文档
查看更多
6.4.1 构造函数进行类类型转换 class X { // …… public : X ( int ) ; X ( const char * , int = 0 ) ; }; void f ( X arg ) ; : X a = X( 1 ) ; // a = 1 X b = Jessie ; // b = X ( Jessie , 0 ) a = 2 ; // a = X ( 2 ) f ( 3 ) ; // f ( X ( 3 ) ) f ( 10 , 20 ) ; // error 例如 当找不到匹配的构造函数时 转换失败 6.4.1 构造函数进行类类型转换 6.4.1 构造函数进行类类型转换 class X { // …… public : X ( int ) ; X ( const char * , int = 0 ) ; }; void f ( X arg ) ; : X a = X( 1 ) ; // a = 1 X b = Jessie ; // b = X ( Jessie , 0 ) a = 2 ; // a = X ( 2 ) f ( 3 ) ; // f ( X ( 3 ) ) f ( 10 , 20 ) ; // error 例如 这样的隐式类型转换 由系统自动完成 6.4.1 构造函数进行类类型转换 6.4.2 类型转换函数 带参数的构造函数不能把一个类类型转换成基本类型 类类型转换函数是一种特殊的成员函数,提供类对象之间 显式类型转换的机制 6.4.2 类类型转换函数 6.4.2 类型转换函数 语法形式: X :: operator T ( ) { …… return T 类型的对象 } 功能:将类型 X 的对象转换为类型 T 的对象 ? T 可以是预定义类型,也可以是用户定义类型 函数没有参数,没有返回类型,但必须有一条 return 语句,返回 T 类型的对象 ? 该函数只能为成员函数,不能为友员 6.4.2 类类型转换函数 6.4.2 类型转换函数 例如: class X { …… public : operator int ( ) ; …… } ; void f ( X a ) { int i = int ( a ) ; i = ( int ) a ; i = a ; } 6.4.2 类类型转换函数 6.4.2 类型转换函数 例如: class X { …… public : operator int ( ) ; …… } ; void f ( X a ) { int i = int ( a ) ; i = ( int ) a ; i = a ; } 使用三种 类型转换规则? No a 是一个类对象, 它们都用类型转换函数作类型转换 X :: operator int () 6.4.2 类类型转换函数 6.4.2 类型转换函数 例如: class X { …… public : operator int ( ) ; …… } ; void f ( X a ) { int i = int ( a ) ; i = ( int ) a ; i = a ; } No a 是一个类对象, 它们都用类型转换函数作类型转换 X :: operator int () 6.4.2 类类型转换函数 6.4.2 类型转换函数 例如: class X { …… public : operator int ( ) ; …… } ; void f ( X a ) { int i = int ( a ) ; i = ( int ) a ; i = a ; } void g ( X a , X b ) { int i = ( a ) ? 1 + a : 0 ; int j = ( a b ) ? a + b : i ; if ( a ) { …… } ; } 除了赋值和初始化, 类型转换函数还可以这样使用: 对象 a 、b 可用在整型变量出现的地方 6.4.2 类类型转换函数 6.4.2 类型转换函数 类型转换函数有两种使用方式: 隐式使用 i = a ; 显式

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档