




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指导教师(签名) 年 月 日说明:指导教师评分后,实验报告交院(系)办公室保存。实验4、构造函数与析构函数1实习目的及要求1)掌握构造函数和析构函数定义方法;2)掌握构造函数的重载、具有默认值的构造函数的使用方法;3)加深对构造函数的特殊用途的理解。2实验内容:21分析下面的程序,按各题要求进行实验 1) 分析下面的程序,指出程序运行的结果:#includeclass Cylinderpublic:Cylinder() Cylinder(double r , double h);void setcylinder(double r ,double h);double getradius()return radius;double getheight()return height;double volume();double surface_area();private:double radius;double height ;const double PI=3.1415926;Cylinder: Cylinder(double r , double h)radius=r ;height=h ;void Cylinder:setcylinder(double r ,double h)radius=r ;height=h ;double Cylinder:volume()double vol ;vol=PI*radius*radius*height ;return vol ;double Cylinder:surface_area()double area ;area=2*PI*radius*height+2*PI*radius*radius ;return area ;void main()Cylinder cylinder1(7.0 , 12.0) , cylinder2 ; /Acylinder2.setcylinder(12.3 ,18.7);coutthe radius of cylinder1 is :t cylinder1.getradius()endl ;coutthe height of cylinder1 is :t cylinder1.getheight()endl ;coutthe volume of cylinder1 is :t cylinder1.volume()endl ;coutthe surface area of cylinder1 is :t cylinder1.surface_area()endl ;coutthe radius of cylinder2 is :t cylinder2.getradius()endl ;coutthe height of cylinder2 is :t cylinder2.getheight()endl ;coutthe volume of cylinder2 is :t cylinder2.volume()endl ;coutthe surface area of cylinder2 is :t cylinder2.surface_area()endl ;分析:Cylinder类图如下:Cylinder-radius:double-height:double+Cylinder():void+Cylinder(r:double,h:double):void+setcylinder(r:double,h:double):void+getradius():double+getheight():double+volume():double+surface_area():double程序运行过程为:cylinder1.radius=7.0, cylinder1.height=12.0cylinder2.radius=12.3,cylinder2.height=18.7在屏幕上显示cylinder1.radius和cylinder1.height的值计算cylinder1的vol area并在屏幕上显示它的值在屏幕上显示cylinder2.radius和cylinder2.height的值计算cylinder2的 PI*radius*radius*height=area并在屏幕上显示它的值计算cylinde2的area= area=2*PI*radius*height+2*PI*radius*radius并在屏幕上显示它的值运行结果:2) 分析下面的程序,指出程序的错误#include#includeclass Sampleint i ;public:int j; Sample (int x) i=x ; Sample() exit(1) ; cout撤消endl; ;void main()Sample a1(10) , a2(20);exit(1) ;cout撤消endl;分析:在执行完Sample a1(10) , a2(20)之后,对象的生命期结束,这时程序会自动调用析构函数Sample(),释放对象,并exit(1) 异常退出了,所以main函数中Sample a1(10) , a2(20)后面的语句“exit(1) ;cout撤消endl;”将无法继续执行。3)将下面的程序补充完整# includeclass testprivate:int num ;float f1 ;public:test();test(_int_ , _float_ );getint() return num ;getfloat()return f1;test_test()cout默认初始化endl ;_num_ = 0 ;_f1_ = 0.0 ;test_test(_int_ n , float_ f )cout初始化endl ;_num_ = n ;_f1 = f;void main ()test a ;test b(2,5.5);32 编写并调试程序:编写一个实现两个数相减的类的测试程序,请写出类的定义,构成一个完整的程序,要求调用类的构造函数和析构函数时均有明确的输出信息。程序主函数如下: void main() Test t (88,32); t.print(); 由题意可知所要编写的类为Test,它的成员函数由构造函数、析构函数和print函数,作出它的类图如下:Test-num1:int-num2:int+Test(a:int,b:int)+Test()+print():void代码编写如下:*4 课后练习调试下面的程序,指出程序实现的功能及程序输出结果;加深对构造函数和析构函数的理解。1)调试程序1# include “iostream.h”#include iostream.hclass CSampleint i;public:CSample();void Display();CSample();CSample:CSample()coutconstrucor,;i=0;CSample:CSample()coutDestrucorendl;void CSample:Display()couti=i,;void main()CSample a;a.Display();程序2)调试程序2#include class CSampleint i;public:CSpmple( );CSpmple ( int val);void Display( );CSpmple( );CSample:CSample( )cout Constructor1 endl;i=0;CSpmple:CSpmple ( int val)coutConstructor2 endl;i=val;void CSample : Display( )cout i= i endl;CSpmple:CSpmple( )cout Destructor endl;void main( )CSample a,b(10);a.Display( );b.Display( );Constructor1Constructor2i=0i=10DestuctorDestuctor3)调试程序3 # include # includeclass CAchar *ps ;public :CA( ) ps=0 ; CA (char *s) ps=new char strlen (s)+1 ; strcpy (ps , s) ; CA ( CA &s) ; CA()if (ps ) delete ps ; char *GetS ( ) retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品安全知识培训案例课件
- 一元二次方程试卷及答案
- 新化社区考试题库及答案
- 食品安全知识培训与宣传课件
- 医师内科三基题库及答案
- 小学语文满分题库及答案
- 希腊题目及答案
- DB61T 1192-2018 密闭取心示踪剂酚酞的检测 目视比色法
- DB61T 1142.42-2018 番茄 长丰5号规范
- 2025年乡镇团委书记竞聘面试常见问题解答
- 多囊卵巢综合征合并胰岛素抵抗诊治专家共识
- 竞选竞选大学心理委员参考课件
- 2024年数控车工技能竞赛理论考试题库500题(含答案)
- 牙体牙髓病学(山东联盟)智慧树知到答案2024年滨州医学院
- 《矿物岩石学》全套教学课件
- 全国职业院校宠物营养学知识竞赛备考试题库(含答案)
- JTG-D82-2009公路交通标志和标线设置规范
- 教学课件 《公共政策概论》谢明
- 《民航基础第一章》课件
- 化学物理与材料科学
- 玉米生长过程-课件
评论
0/150
提交评论