面向对象编程(C++)精品教学:第10章.pptVIP

面向对象编程(C++)精品教学:第10章.ppt

  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文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * {cout″input real part and imaginary part of complex number:″; inputc.realc.imag; return input; } int main( ) {Complex c1,c2; cinc1c2; cout″c1=″c1endl; cout″c2=″c2endl; return 0; } 运行情况如下: input real part and imaginary part of complex number:3 6↙ input real part and imaginary part of complex number:4 10↙ c1=(3+6i) c2=(4+10i) 在C++中,运算符重载是很重要的、很有实用意义的 使类的设计更加丰富多彩,扩大了类的功能和使用范围,使程序易于理解,易于对对象进行操作,它体现了为用户着想、方便用户使用的思想 有了运算符重载,在声明了类之后,人们就可以像使用标准类型一样来使用自己声明的类 类的声明往往是一劳永逸的,有了好的类,用户在程序中就不必定义许多成员函数去完成某些运算和输入输出的功能,使主函数更加简单易读 好的运算符重载能体现面向对象程序设计思想 在C++中,某些不同类型数据之间可以自动转换,例如 int i = 6; i = 7.5 + i; 这种转换是由C++编译系统自动完成的,用户不需干预,称为隐式类型转换。 C++还提供显式类型转换 类型名(数据) int(89.5) //其作用是将89.5转换为整型数89。 对于用户自己声明的类型,编译系统并不知道怎样进行转换。解决这个问题的关键是让编译系统知道怎样去进行这些转换,需要定义专门的函数来处理。 10.8 不同类型数据间的转换 10.8.1 标准类型数据间的转换 7.5是作为double型数处理的; 6转换成double型,然后与7.5相加,得到和为13.5; 向整型变量i赋值时,将13.5转换为整数13 转换构造函数(conversion constructor function) 的作用是将一个其他类型的数据转换成一个类的对象。 先回顾一下以前学习过的几种构造函数: 默认构造函数。以Complex类为例,函数原型的形式为 Complex( ); //没有参数 用于初始化的构造函数。函数原型的形式为 Complex(double r,double i); //形参表列中一般有两个以上参数 用于复制对象的复制构造函数。函数原型的形式为 Complex (Complex c); //形参是本类对象的引用 一种新的构造函数——转换构造函数。 只有一个形参,如 Complex(double r) {real=r;imag=0;} 作用是将double型的参数r转换成Complex类的对象,将r作为复数的实部,虚部为0 10.8.2 转换构造函数 用户可以根据需要定义转换构造函数,在函数体中告诉编译系统怎样去进行转换。 在类体中可以有转换构造函数,也可以没有转换构造函数,视需要而定。 以上几种构造函数可以同时出现在同一个类中,它们是构造函数的重载。 编译系统会根据建立对象时给出的实参的个数与类型选择形参与之匹配的构造函数。 假如在Complex类中定义了Complex(double r) {real=r;imag=0;} Complex c1(3.5);//建立对象c1,由于只有一个参数,调用转换构造函数 Complex (3.5); //建立一个无名的对象,合法,但无法使用 c1=Complex (3.5); //赋值 如果已经对“+”进行了重载,使之能对两个Complex类对象进行相加, c=c1+2.5;//编译出错 c=c1+Complex(2.5);//合法 使用转换构造函数将一个指定的数据转换为类对象的方法如下: 先声明一个类。 在这个类中定义一个只有一个参数的构造函数,参数的类型是需要转换的类型,在函数体中指定转换的方法。 在该类的作用域内可以用以下形式进行类型转换: 类名(指定类型的数据) 就可以将指定类型的数据转换为此类的对象。 不仅可以将一个标准类型数据转换成类对象,也可以将另一个类的对象转换成转换构造函数所在的类对象。 如:可以将一个学生类对象转换为教师类对象,可以在Teacher类中写出下面的转换构造函数

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档