第3章 类与对象.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文档。上传文档
查看更多

3.3.2析构函数2.默认析构函数如果一个类中没有定义析构函数时,系统将自动生成一个默认析构函数,其格式如下:类名::~类名(){}第29页,共71页,星期日,2025年,2月5日3.3.2析构函数【例3.6】修改例3.2中定义的类,示例析构函数的用法。返回本节第30页,共71页,星期日,2025年,2月5日3.3.3拷贝构造函数1.拷贝构造函数的特点拷贝构造函数是一种特殊的构造函数,它的作用是用一个已经存在的对象去初始化另一个对象。其格式为:类名::类名(const类名对象名){〈函数体〉}保证源对象不被改变对象的引用,不创建对象第31页,共71页,星期日,2025年,2月5日3.3.3拷贝构造函数在以下3种情况下会自动调用拷贝构造函数:当用类的一个对象去初始化该类的另一个对象时当函数的形参是类的对象,进行形参和实参结合时当函数的返回值是类的对象,函数执行完成返回调用者时第32页,共71页,星期日,2025年,2月5日3.3.3拷贝构造函数2.默认拷贝构造函数如果一个类中没有定义拷贝构造函数,则系统自动生成一个默认拷贝构造函数。该函数的功能是将已知对象的所有数据成员的值拷贝给对应的对象的所有数据成员。如Point类默认的拷贝构造函数相当于:Point(constPointp){X=p.X;Y=p.Y;}第33页,共71页,星期日,2025年,2月5日3.3.3拷贝构造函数【例3.7】分析下面程序的执行过程,了解拷贝构造函数的用法。返回本节第34页,共71页,星期日,2025年,2月5日3.4this指针Pointsetxy(int,int)displayxy()p1p23456xysetxydisplayxyxysetxydisplayxyvoidPoint::displayxy(){ cout(X,Y)endl;}……p1.displayxy();p2.displayxy();输出p1的X、Y,而不是p2的X、Y?第35页,共71页,星期日,2025年,2月5日3.4this指针C++为成员函数提供的一个称为this的指针。this指针将作为一个变元自动传给被调用的函数。当某一对象调用一个成员函数时,this指针就指向该对象。所以,不同的对象调用同一个成员函数时,编译器根据this指针来确定应该引用哪一个对象的数据成员。voidPoint::displayxy(){cout(this-X,this-Y)endl;}p1.displayxy();//this指针指向p1p2.displayxy();//this指针指向p2p1.p1.p2.p2.第36页,共71页,星期日,2025年,2月5日3.4this指针this指针的特点:this指针是由C++编译器自动产生且较常用的一个隐含对象指针,它不能被显式声明。this指针是一个局部量,局部于某个对象。this指针是一个常量,它不能作为赋值、递增、递减等运算的目标对象。只有非静态类成员函数才拥有this指针,并通过该指针来处理对象。第37页,共71页,星期日,2025年,2月5日3.4this指针【例3.8】分析下面程序,体会this指针的隐式使用第38页,共71页,星期日,2025年,2月5日3.4this指针【例3.9】分析程序结果,体会this指针的显式使用。返回首页第39页,共71页,星期日,2025年,2月5日3.5子对象和堆对象返回首页3.5.1子对象3.5.2堆对象第40页,共71页,星期日,2025年,2月5日3.5.1子对象一个对象作为另一个类的数据成员时,该对象称为类的子对象或对象成员。说明形式为:classX{类名1子对象1类名2子对象2……类名n子对象n};第41页,共71页,星期日,2025年,2月5日3.5.1子对象classA{…};classB{…private:Aa;…};例如:第42页,共71页,星期日,2025年,2月5日3.5.1子对象2.子对象的初始化设X类含有子对象为初始

文档评论(0)

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

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

1亿VIP精品文档

相关文档