构造函数和析构函数.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文档。上传文档
查看更多

第1页,共34页,星期日,2025年,2月5日本章学习要求初始化对象的必要性和使用初始化列表初始化对象。隐藏对象的产生过程和构造函数类型转换;复制初始化构造数的使用;复制初始化构造函数和析构函数的执行方式,对象赋值方法;析构函数定义、作用及何时被调用;使用运算符delete除动态对象的方法;缺省析构函数;对象成员和对象成员构造函数的定义方法;对象成员构造函数和析构函数的调用顺序;定义构造函数的方法并能用运算符new建立动态对象;缺省构造函数;运用对象数组;复制初始化构造函数的定义方法。第2页,共34页,星期日,2025年,2月5日构造函数对象是类的实例,在使用对象中的成员数据之前,首先要对对象中的成员数据进行初始化。在定义类时不能对类中的成员数据直接初始化,但在创建对象时可借助于四种方法进行初始化。构造函数的定义构造函数和对象的初始化构造函数的重载缺省构造函数和具有缺省参数值的构造函数10.1第3页,共34页,星期日,2025年,2月5日四种方法进行初始化用初始化列表的方法,这种方法的缺点是只能对公有成员数据初始化,对私有和保护类型的数据无能为力,又由于对象的封装性要求将类的成员数据都定义为私有的,因此这种方法不常用;通过赋值语句来实现,即将一个已经初始化的对象赋给要初始化的对象;通过在类中定义一个成员函数,该成员函数能够对对象中的成员数据进行设置;通过构造函数来进行初始化,这是一种最常用的方法,它的特点是在创建对象的同时能自动对对象中的成员数据进行初始化。第4页,共34页,星期日,2025年,2月5日构造函数的定义C++规定与类同名的成员函数是构造函数,它是一个特殊的成员函数,没有返回值。构造函数定义的一般格式为: 类名::类名(形参表) {…}示例构造函数没有返回值,在声明和定义构造函数不能说明它的类型,即使void类型也不行。10.1.1第5页,共34页,星期日,2025年,2月5日classCSimpleString{char*string;intlength;public:CSimpleString(int);//声明构造函数};CSimpleString::CSimpleString(inta)//定义构造函数{string=0;length=a;}第6页,共34页,星期日,2025年,2月5日构造函数和对象的初始化C++系统规定在创建一个对象时,首先调用该对象的构造函数,因此通常利用构造函数对对象中的成员数据进行初始化。对构造函数的调用是隐性的,即由编译系统自动调用,在创建对象时可以向构造函数传递实参,一般格式为: 类名对象名《(实参表)》;其中实参表为向构造函数传递的参数,它可以为空,该实参表必须与某个构造函数的参数的类型和个数一致。【例10.5】构造函数的初始化作用10.1.2第7页,共34页,星期日,2025年,2月5日【例10.5】构造函数的初始化作用第8页,共34页,星期日,2025年,2月5日构造函数的重载与普通函数一样,只要参数的个数或类型不同,就可以实现构造函数的重载。也就是说,一个类可以有多个构造函数。具有多个构造函数使得类具有更大的灵活性,即可以根据不同的要求进行不同的初始化。与普通函数类似,根据创建对象时对象后的实参表的类型和个数,系统将会自动调用形参表与该实参表匹配的构造函数,如果不存在相匹配的构造函数,则系统报错。【例10.6】构造函数的重载10.1.3第9页,共34页,星期日,2025年,2月5日【例10.6】构造函数的重载第10页,共34页,星期日,2025年,2月5日缺省的构造函数缺省的构造函数具有缺省参数值的构造函数10.1.4第11页,共34页,星期日,2025年,2月5日缺省的构造函数在创建一个对象时,系统会自动调用构造函数。如果在类中没有定义构造函数,编译系统会自动产生一个缺省的构造函数,其格式为: 类名::类名(){}这是一个参数表和函数体都为空的构造函数,它并没有对对象中的成员数据做任何的初始化工作。因此如果在创建对象过程中调用缺省构造函数,则对象中的数据是不确定的,还必须采用其它方式对对象中的成员数据进行初始化。【例10.7】调用缺省构造函数对于缺省的构造函数要注意的几点第12页,共34页,星期日,2025年,2月5日【例10.7】调用缺省构造函数第13页,共34页,星期日,2025年,2月5日对于缺省的构造函数要注意的几点如果在类中定义了构

文档评论(0)

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

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

1亿VIP精品文档

相关文档