网站大量收购独家精品文档,联系QQ:2885784924

计算机程序设计-C++课件第7章数据的抽象与封装-类.pptVIP

计算机程序设计-C++课件第7章数据的抽象与封装-类.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

例:*//不带参数的构造函数mobilemobile::mobile(){ strcpy(mynumber,“0000000000”);cout“Turnonthemobile”mynumberendl;}//带参数的构造函数mobilemobile::mobile(charnumber[11]){ strcpy(mynumber,number);cout“Turnonthemobile”mynumberendl;}类名(形参列表){函数体}7.3.2拷贝构造函数*拷贝构造函数一种特殊的构造函数,依据已有对象创建对象典型地,将参数代表的对象逐个域地复制到新创建的对象中拷贝构造函数的特点:与其他构造函数一样,与所在的类同名只有一个参数,并且是同类对象的引用每个类都有一个拷贝构造函数若无显式定义的拷贝构造函数,系统默认创建一个但当类中有指针成员时,系统默认创建拷贝构造函数会有风险类名(类名对象名){函数体}*//拷贝构造函数_p对象成员变量复制给当前对象mobile(mobilep){ strcpy(mynumber,p.mynumber);cout“Turnonthemobile”mynumberendl;}P.191拷贝构造函数通常会在以下情况调用:……拷贝构造函数的定义:7.3.3析构函数*析构函数(Destructor)也是类中的特殊成员与类同名,但前面加“~”与构造函数区分析构函数执行与构造函数相反的操作,当一个对象的生存期结束时,或对一个类指针使用运算符delete时,系统自动调用析构函数来撤消该对象,释放它所占据的内存空间析构函数无参数亦无返回值,且不能重载,故一个类中只能有一个析构函数。析构函数也可在类定义内声明而在类定义外定义若类定义中无析构函数,编译系统产生一个默认析构函数,函数体为空。多数类有默认析构函数即可若对象完成操作前还需某些内部处理(如用delete释放动态分配的存储空间)则应定义析构函数~类名(){函数体}*构造函数和析构函数最常见的用法:在构造函数中用运算符new为数据分配存储空间最后在析构函数中用运算符delete释放已分配的存储空间析构函数的定义格式://析构函数_程序运行结束前显示提示信息~mobile(){ cout“Turnonthemobile”endl;}例7-4定义mobile类*#includeiostreamusingnamespacestd;classmobile{public:charmynumber[11];mobile();//不带参数的构造函数mobile(charnumber[11]);//带参数的构造函数~mobile();//析构函数};mobile::mobile(){strcpy(mynumber,”0000000000”);coutmynumbermynumberendl;}mobile::mobile(charnumber[11]=”0000000000”){strcpy(mynumber,number);cout”Turnonthemobile”mynumberendl;}mobile::~mobile(){cout”Turnoffthephone”endl;}voidmobilecopy1(mobilep){cout”Turnonthemobile”p.mynumberendl;}mobilemobilecopy2(mobilep){returnp;}*intmain(){mobilem1(”1111111111”);mobilecopy1(m1); //函数形参是类对象cout”Thisistheprocessofm1”endl;mobilem2(m1); //类对象初始化另一类对象mobilecopy1(m2); //函数形参是类对象cout”Thisistheprocessofm2”endl;mobilem3=mobilecopy2(m1);//函数返回值是类对象mobilecopy1(m3); //函数形参是类对象cout”This

文档评论(0)

翰林大当家 + 关注
实名认证
服务提供商

文案个性定制,计划书、方案、策划书专业撰写。

1亿VIP精品文档

相关文档