面向对象程序实验设计.docVIP

  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++程序设计》Barbara Johnston 著 实验介绍:程序运行过程中,对象“诞生”于创建(及构造函数初始化变量)之时。正如对象会“诞生”一样,程序结束或对象不再被使用时,他也会“死亡”。程序结束或超出对象的生存范围时,对象会被销毁。在某些情况下,对象被销毁时需要由对象自己负责完成某些任务。这些任务可能包括关闭打开的文件或释放由new操作符分配的内存。 实验原理:C++提供了析构函数,它在对象被销毁时自动调用。全局对象的析构函数在程序结束时才被调用。如果某个函数创建了一个局部对象,则函数退出时该对象就会被销毁。析构函数的形式与构造函数的相似。在类名称前加上一个~字符,并且没有返回类型。一个类中只有一个析构函数。如果必要的话,程序员可以直接调用析构函数,然而多数情况下调用时自动完成的。 实验目的:在main函数中,创建两个Gadget对象(red和blue)。GetData返回布尔值(good的值),这样main函数就知道对象中的数据是否合法。程序只输出合法数据。除函数sumData外,成员函数保存在另一个文件Ch9Gadgets.cpp中。 实验内容:Gadgets程序。 程序中声明了一个叫做Gadget的类。(Gadget的意思是无法归类或无法命名的小物品。)私有数据成员为4个整数和一个布尔类型的标志:x、y、z以及他们之和sum,如果x、y、z都大于0,则标志的值为真。有两个私有函数Validate和SumData。公有成员函数包括:构造函数、GetData和WriteData。 Gadget程序源代码如下: class Gadget { Private: int x,y,z,sum; bool good; //数据合法时good的值设为真 void Validate(); //检查x,y,z的值是否大于0 void SumData(){sum=x+y+z;} public: Gadget(); ~Gadget(); Bool GetData() Void WriteData(); }; #endif //程序Gadgets //文件:Ch9Gadgets.cpp #includeiostream,h #includeCh9Gadgets.h Gadget::Gadget() { cout“\n Gadget构造函数,把所有值设为0”; x=y=z=sum=0; good=false; } Gadget::~Gadget() { cout“\n Gadget析构函数。” “ \n无事可做了,再见!\n”; } bool Gadget::GetData() { Good=false; //开始设为false cout“\n请输入Gadget的整型数据成员x,y,z=”; cinxyz; Validate(); //调用Validate检查数据的合法性 If(good==true) { SumData(); //如果数据合法,则对它们求和 } return good; } Void Gadget::Validate() { //3个数都大于0时数据合法 if(x0y0z0) good=true; else good=false; } Void Gadget::WriteData() { cout “\nGadget的数据:x= “x “y= “y “z= “z; cout“和为:”sumendl; } //文件:GadgetsDriver.cpp #includeiostream.h #includeCh9Gadgets.h Int main() { Cout“\n\nGadgets程序!\n\n”; Gadget red,blue; //声明两个Gadget对象 bool goodred,goodblue; “cout“\n red Gadget:”; //显示red中的信息, //然后调用red的GetData()方法 Goodred=red.GetData(); cout“\n blue Gadget:”; //跟上面的red对象的操作相同 goodblue=blue.GetData(); if(goodred==true goodblue==true) { cout“\n 两个Gadget对象中的数据都合法!” cout“\n red Gadget:”; //调用red的WriteData() re

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档