面向对象C 第四章.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文档。上传文档
查看更多

4.5成员函数重载及默认参数【例4.11】构造一个求4个正整数中最大者的类Max,并用主程序验证它的功能。classMax{//声明类private://封装数据成员和成员函数inta,b,c,d;//数据成员intMaxi(int,int);//只允许类内部的成员函数调用public://对外界的接口voidSet(int,int,int,int);//设置对象初值intMaxi();//求最大值}A[3];//声明类的对象数组,定义结束第61页,共108页,星期日,2025年,2月5日//类中成员函数的实现intMax::Maxi(intx,inty) //求二个数的最大值{return(xy)?x:y;}//使用两个默认参数voidMax::Set(intx1,intx2,intx3=0,intx4=0){a=x1;b=x2;c=x3;d=x4;}intMax::Maxi()//求自己类中四个数的最大值{ intx=Maxi(a,b);//x和y为Maxi()函数的局部整数对象inty=Maxi(c,d);returnMaxi(x,y);}第62页,共108页,星期日,2025年,2月5日//主程序#includeiostreamusingnamespacestd;voidmain(){ A[0].Set(12,45,76,89);//为数组对象A[0]置初值 A[1].Set(12,45,76);//为数组对象A[1]置初值 A[2].Set(12,45);//为数组对象A[2]置初值for(inti=0;i3;i++)//输出对象求值结果coutA[i].Maxi();}第63页,共108页,星期日,2025年,2月5日程序演示了可在声明类的同时也声明类的对象,这里是声明对象数组A,作用与在主程序里使用“MaxA[3];”语句相同。为了提高可读性,一般不在声明类时声明对象,这里只是为了演示它的性质。程序输出结果为:897645类中重载了函数Maxi,一个原型为Maxi(int,int),用来求两数中的大者。因为它只被自己的成员函数使用,所以定义为private。另一个原型为Maxi(),它调用两次Maxi(int,int),然后再用这两次的结果作为Maxi(int,int)的参数,求出4个数中的最大值。赋值成员函数Set使用2个默认参数,是为了书写方便。第64页,共108页,星期日,2025年,2月5日4.6this指针在定义Point类的两个对象A和B之后,当执行语句“A.Setxy(25,55);”时,A.x和A.y就被赋值。但是,函数Setxy(int,int)作为代码,在计算机里是和具体的对象分开存储的。那么,它是怎样知道,是要对A进行操作而不是对B进行操作呢?当执行A.Setxy(25,55)时,成员函数Setxy(int,int)有一个隐藏参数,名为this指针。也就是说,源程序被编译器编译后,Setxy(inta,intb)实际上是如下形式:voidPoint::Setxy(inta,intb,(Point*)this){this-x=a;this-y=b;}成员函数的this指针指向对象A。成员中对x和y的引用表示是引用对象A的成员x和y。对于任何访问该成员函数的类的对象来说,C++编译器都认为是访问this指针所指向的对象中的成员。第65页,共108页,星期日,2025年,2月5日C++规定,当一个成员函数被调用时,系统自动向它传递一个隐含的参数,该参数是一个指向接受该函数调用的对象的指针,从而使成员函数知道该对哪个对象进行操作。在程序中,可以使用关键字this来引用该指针。使用this指针,保证了每个对象可以拥有自己的数据成员,但处理这些数据成员的代码可以被所有的对象共享。除非特殊需要,一般情况下都省略符号“this-”,而让系统进行默认设置。第

文档评论(0)

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

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档