构造函数与析构函数.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.构造函数与其他成员函数的区别在于:1)与类同名2)没有返回值类型3)系统创建对象时,自动调用并可用实参对之初始化5.数据成员初始化1)赋值方式即构造函数可对对象的数据成员进行初始化classX{

private:

inti;

public:

X()

{i=100;}

}//函数Person的定义Person::Person(char*xname,intxage,intxsalary,char*xtel){strcpy(name,xname);//给各数据成员提供初值age=xage;salary=xsalary;strcpy(tel,xtel);}//函数disp的定义voidPerson::disp(){coutendl;cout姓名:nameendl;cout年龄:ageendl;cout工资:salaryendl;cout电话:telendlendl;}voidmain()//主函数{//生成对象obj并初始化Personobj(张立三,25,850;obj.disp();//显示obj}//Exanple:为类Person增加构造函数#includestring.hclassPerson{private: charm_strName[20]; intm_nAge; intm_nSex;public: Person(constchar*name,intage,charsex){ strcpy(m_strName,name); m_nAge=age; m_nSex=(sex==m?0:1);}voidRegister(char*Name,intAge,charSex); voidGetName(char*Name); intGetAge(); charGetSex();};说明:创建对象时,系统自动调用对象所属类的构造函数;如果有参数,则利用实参对对象进行初始化。当构造函数重载时,由参数区分调用哪个构造函数例:遇到声明:Personperson1(“Zhang3”,19,’f’);时,编译器就调用构造函数:Person::person(constchar*,int,char);来创建对象person1并用实参初始化其数据成员。如果将构造函数的声明与定义分开,则声明时不可带成员初始化表2)构造函数的初始化表构造函数“头”与“体”之间的初始化值列表类成员声明中不允许赋值常量、引用必须初始化其他变量也可以类似初始化????类名::构造函数(参数表):变量1(初值1),…,变量n(初值n){…}例:classSillyclass{public:Sillyclass()//此构造函数对成员ten和refi的初始化错误。{ten=10;refi=i;}protected:constintten;//常量数据成员tenintrefi;//引用refi};说明:1.造成以上错误的原因是在Sillyclass类的构造函数进入之后(开始执行其函数体时),对象结构已经建立,数据成员ten和refi已存在,而其数据成员ten为const,而refi为引用,所以在构造函数体内不能再对其指派新的值。2.解决以上问题的方法是利用初始化表:在构造函数的括号后面加一“:”和初始化表,初始化表的格式是:数据成员名(值),如果有多个时,需要用逗号隔开。【例】类employee中包括私有数据成员x,和2个公有函数成员example、show。程序中使用初始化表是x(215)。#includeiostream.h//定义类employeeclassemployee{private:constintx;public:employee();voidshow();};//employee的类外

文档评论(0)

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

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

1亿VIP精品文档

相关文档