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构造函数与析构函数

构造函数和析构函数 对象的初始化 在对象定义的同时,给成员变量赋值。 能否在类说明的时候,对类对象进行初始化? class CStu { char* Name=“zhang”; int Age=20; char* Sex=“nan”; } 能否在定义对象时,对成员变量初始化? CStu a={“zhang”,20,”nan”}; 构造函数 构造函数是在类中声明的一种特殊的成员函数,作用是在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的状态。 构造函数的名字与它所属的类名相同,被声明为公有函数,且没有任何类型的返回值,在创建对象时被自动调用。 下面的例子说明了构造函数的定义和使用。 【例】 在类CStu中加入构造函数,用来为对象赋初值。 需要注意: 1.类对象进入作用域的时候,调用对应的构造函数。 2.构造函数没有返回值,因此在说明原型的时候,不能带有返回值类型定义。 void CStu(); 不被允许。 3.不要误以为是在类声明是对变量赋值,赋值语句只有在构造函数运行时才会执行。 4.构造函数是系统自动调用的,而且只能运行一次。不允许用户自行调用。 a.CStu(); 不被允许。 构造函数作为类的一个成员函数,具有一般成员函数所有的特性,它可以访问类的所有数据成员,可以是内联函数,可以带有参数表,还可以带默认的形参值。构造函数也可以重载,以提供初始化类对象的不同方法。 带参数的构造函数 如果想给对象初始化的时候,是每个对象得到不同的值,就必须给构造函数带上参数。 函数原型—— CStu::CStu(char name[],int age,char sex[]); 变量说明—— CStu a(“zhang”,25,”nan”); 构造函数的重载 一个类中,允许有多个构造函数,以便提供不同的初始化方案,而这些函数具有相同的名字,而参数的个数或者类型是一样,以保证编译系统能够区别,这就成为构造函数的重载。 可同时定义两个构造函数,一个带参数,一个不带参数: 函数原型—— CStu::CStu(); CStu::CStu(char name[],int age,char sex[]); 变量说明—— CStu a(“zhang”,25,”nan”),b; 带默认形参值的构造函数 和普通公有函数一样,构造函数也可以给形参带默认值。这样在调用函数时,如果未给出参数值,则以默认值代替。 CStu::CStu(char name[]=“zhao”, int age=25, char sex[]=“nan”); 注意: 1.可以给每个参数指定默认值,也可以给部分参数指定默认值。 2.如果全部参数都指定了默认值,在对象定义时,可以只给出一个或几个实参,也可以不给出实参。但是必须从后往前给。 3.当一个类中声明了一个给出全部参数默认值构造函数,则不能再定义重载的构造函数。 每个类都必须有构造函数,若类定义时没有定义任何构造函数,编译器会自动生成一个不带参数的缺省构造函数,其形式如下: 类名 ::缺省构造函数名 ( ) { //... } 缺省构造函数名与类名相同。 析构函数 一个对象的作用域结束时,要调用该对象所属类的析构函数。析构函数的功能是用来释放一个对象的。析构函数本身并不实际删除对象,而是进行系统放弃对象内存之前的清理工作,使内存可用来保存新的数据。它与构造函数的功能正好相反。 析构函数也是类的成员函数,它的名字是在类名前加字符“~”。析构函数没有参数,也没有返回值。析构函数不能重载,也就是说,一个类中只可能定义一个析构函数。 析构函数可以在程序中被调用,也可由系统自动调用。在函数体内定义的对象,当函数执行结束时,该对

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档