面向对象程序实验设计

面向对象程序实验设计

ID:10110865

大小:40.00 KB

页数:8页

时间:2018-05-26

面向对象程序实验设计_第1页
面向对象程序实验设计_第2页
面向对象程序实验设计_第3页
面向对象程序实验设计_第4页
面向对象程序实验设计_第5页
资源描述:

《面向对象程序实验设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

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

3、标志:x、y、z以及他们之和sum,如果x、y、z都大于0,则标志的值为真。有两个私有函数Validate和SumData。公有成员函数包括:构造函数、GetData和WriteData。Gadget程序源代码如下:classGadget{Private:intx,y,z,sum;boolgood;//数据合法时good的值设为真voidValidate();//检查x,y,z的值是否大于0voidSumData(){sum=x+y+z;}public:Gadget();~Gadget();BoolGetData()VoidWriteData();};#endif//程序Gadg

4、ets//文件:Ch9Gadgets.cpp#include#includeGadget::Gadget(){cout<<“Gadget构造函数,把所有值设为0”;x=y=z=sum=0;good=false;}Gadget::~Gadget(){cout<<“Gadget析构函数。”“无事可做了,再见!”;}boolGadget::GetData(){Good=false;//开始设为falsecout<<“请输入Gadget的整型数据成员x,y,z=>”;cin>>x>>y>>z;Validate();/

5、/调用Validate检查数据的合法性If(good==true){SumData();//如果数据合法,则对它们求和}returngood;}VoidGadget::Validate(){//3个数都大于0时数据合法if(x>0&&y>0&&z>0)good=true;elsegood=false;}VoidGadget::WriteData(){cout<<“Gadget的数据:x=“<#includ

6、eIntmain(){Cout<<“Gadgets程序!”;Gadgetred,blue;//声明两个Gadget对象boolgoodred,goodblue;“cout<<“redGadget:”;//显示red中的信息,//然后调用red的GetData()方法Goodred=red.GetData();cout<<“blueGadget:”;//跟上面的red对象的操作相同goodblue=blue.GetData();if(goodred==true&&goodblue==true){cout<<“两个Gadget对

7、象中的数据都合法!”cout<<“redGadget:”;//调用red的WriteData()red.WriteData();cout<<“blueGadget:”;blue.WriteData();//调用blue的WriteData()}elseif(goodred&&!goodblue){cout<<“red的数据合法,但blue的数据不合法。”;cout<<“redGadget:”;red.WriteData();}elseif(!goodred&&go

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。