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

上传人:pu****.1 文档编号:563657207 上传时间:2023-04-12 格式:DOC 页数:8 大小:40KB
返回 下载 相关 举报
面向对象程序实验设计.doc_第1页
第1页 / 共8页
面向对象程序实验设计.doc_第2页
第2页 / 共8页
面向对象程序实验设计.doc_第3页
第3页 / 共8页
面向对象程序实验设计.doc_第4页
第4页 / 共8页
面向对象程序实验设计.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《面向对象程序实验设计.doc》由会员分享,可在线阅读,更多相关《面向对象程序实验设计.doc(8页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序(析构函数)实验设计 参考现代c+程序设计Barbara Johnston 著一、 实验介绍:程序运行过程中,对象“诞生”于创建(及构造函数初始化变量)之时。正如对象会“诞生”一样,程序结束或对象不再被使用时,他也会“死亡”。程序结束或超出对象的生存范围时,对象会被销毁。在某些情况下,对象被销毁时需要由对象自己负责完成某些任务。这些任务可能包括关闭打开的文件或释放由new操作符分配的内存。二、 实验原理:C+提供了析构函数,它在对象被销毁时自动调用。全局对象的析构函数在程序结束时才被调用。如果某个函数创建了一个局部对象,则函数退出时该对象就会被销毁。析构函数的形式与构造函数的相似。

2、在类名称前加上一个字符,并且没有返回类型。一个类中只有一个析构函数。如果必要的话,程序员可以直接调用析构函数,然而多数情况下调用时自动完成的。三、 实验目的:在main函数中,创建两个Gadget对象(red和blue)。GetData返回布尔值(good的值),这样main函数就知道对象中的数据是否合法。程序只输出合法数据。除函数sumData外,成员函数保存在另一个文件Ch9Gadgets.cpp中。四、 实验内容:Gadgets程序。程序中声明了一个叫做Gadget的类。(Gadget的意思是无法归类或无法命名的小物品。)私有数据成员为4个整数和一个布尔类型的标志:x、y、z以及他们之和

3、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/文件:Ch9Gadge

4、ts.cpp#include#includeGadget: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”; cinxyz; Validate(); /调用Validate检查数据的合法性 If(good=true) SumData(); /如果数据合法,则对它们求和 return good;Void Gadget:Vali

5、date() /3个数都大于0时数据合法 if(x0&y0&z0) good=true; else good=false;Void Gadget:WriteData() cout “nGadget的数据:x= “x “y= “y “z= “z; cout“和为:”sumendl;/文件:GadgetsDriver.cpp#include#includeInt main()Cout“nnGadgets程序!nn”;Gadget red,blue; /声明两个Gadget对象bool goodred,goodblue;“cout“n red Gadget:”; /显示red中的信息,/然后调用re

6、d的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()red.WriteData(); cout“n blue Gadget:”;blue.WriteData(); /调用blue的WriteData()else if(goodred & !goodblue) co

7、ut“n red的数据合法,但blue的数据不合法。”; cout “n red Gadget: ”; red.WriteData();else if(!goodred & goodblue) cout“n red的数据不合法,但blue的数据合法。”; cout“n blue Gadget: ”; blue.WriteData();else cout“n Gadget数据非法。”;cout7 8 9 blue Gadget 请输入Gadget的整形数据成员x、y、z=0 1 2 Red的数据合法,但blue的数据不合法。 red Gadget: Gadget的数据:x=7 y=8 z=9 和为:24 完毕。 Gadget析构函数。 无事可做了,再见!六、实验心得:析构函数是对象超出生存范围时被自动调用的成员函数。一个类中只有一个析构函数,如果必要的话,程序员可以直接调用析构函数,然而多数情况下调用时自动完成的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号