补充C 2_构造函数与析构函数A.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文档。上传文档
查看更多
补充C 2_构造函数与析构函数A

构造函数与析构函数 内容简介 类的成员函数 对象的初始化 可用一特殊成员函数(构造函数)初始化, 每当创建对象时系统自动调用此函数。 构造函数(定义) 几种构造函数 构造函数(形式) 构造函数(举例) 构造函数和运算符new 缺省构造函数 复制初始化构造函数 析构函数定义 析构函数和对象数组 析构函数和运算符delete 缺省析构函数 构造函数类型转换 全局对象或静态对象的构造函数和析构函数 对象的初始化(1) 对象的初始化(2) 对象赋值(1) 对象赋值(2) 对象成员(1) 对象成员(2) 对象成员(3) 小结(1) 小结(2) * 本章着重讨论构造函数、析构函数及用构造函数初始化对象。 要求理解构造函数的作用,并掌握用构造函数初始化对象的方法。掌握构造函数的类型转换、掌握给对象赋值和使用对象成员的方法。 本章的重点是构造函数,难点是构造函数初始化对象。 建立一个对象时,对象的状态(数据成员的取值)是不确定的。为了使对象的状态确定,必须对其进行正确的初始化。C++的构造函数就是自动进行对象初始特殊成员函数。 而对象消失时,要使用析构函数释放由构造函数分配的内存。 一个类也许包括这样一些函数: (1)初始化函数:设置一些或所有数据成员的初始值。即设置类实例的起始阶段。 (2)执行函数:完成一个类的主要操作,这些操作能够改变一个或多个数据成员的值并且可以改变类的实例。 (3)访问函数:访问类当中的个别或所有数据成员,确保类实例一直接访问关键数据成员。 所谓对象的初始化是指对其成员变量提供初始值。由于语法上并未说明一个对象必须初始化,程序员可能忘记了初始化或初始化两次,较好的办法就是让程序员声明一个函数去显式地初始化某些对象。 C++就提供了这样一个函数,即构造函数,当定义一个对象或者是用new生成对象时,编译器自动调用这个函数来初始化对象。 类的定义,初始化无效 构造函数和析构函数 class c { int n=0; int rint=n; //…. } 1.什么是构造函数 构造函数是初始化成员函数的特殊版本。构造函数的好处在于:当类实例存在时,他们就被自动引用。 构造函数是和类名同名的成员函数,在定义构造函数时不能指定返回类型,即使是void类型也不可以。构造函数可以有多个参数也可以没有参数。 构造函数提供了对一种给对象进行初始更强和更一般的方法。 1.自动缺省构造函数:当你没有声明构造函数时,C++编译器会自动生成一个不带参数的构造函数,它的用处不大。 2.缺省构造函数:这些函数没有参数。一个类只有一个缺省构造函数。 3.复制初始化构造函数:利用现存实例的状态来生成实例,一个类只有一个拷贝构造函数。 4.定制构造函数:按你所选的方式来初始化类实例。一个类可以有几个用户定制的构造函数。 //Tfile.h 定义构造函数 class Test { private: int num; public: Test(); Test(int); }; 构造函数:与类同名的函数; 一个类可以有几个构造函数; 构造函数可以有参数,也可以无参数 //Test1.cpp #include iostream.h #include “Tfile.h” Test::Test( ) { cout“Init default”endl; num=0; } Test::Test( int n ) { cout“Init ”nendl; num=n; } Void main( ) {Test x; Test y(15); Test array[2]={5,7}; } 运行结果: Init default Init 15 Init 5 Init 7 //tt.h class Test { private: int PriD; public: Test(int n); int PubD; }; //test.cpp #include iostream.h #include tt.h Test::Test(int n) { PriD=n; coutPriDendl; } v

文档评论(0)

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

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

1亿VIP精品文档

相关文档