




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三、构造函数和析构函数一、实验目的1掌握声明类的方法,类和类的成员的概念以及定义对象的方法。2初步掌握用类和对象编制基于对象的程序。3学习检查和调试基于对象的程序。4掌握类的构造函数和析构函数的概念和使用方法。5掌握对象数组、对象的指针及其使用方法。二、实验内容1检查下面的程序,找出其中的错误,并改正之。然后上机调试,使之能正常运行。(1)#include using namespace std;class Apublic: A(int i=0)m=i; /构造函数不要返回类型名 void show()coutmendl; void set (int i) m = i ; A() /析构函数不要返回类型名 private: int m;int main() A a(5); a.show(); a.set(10); a.show(); return 0;/结果:/5/10 (2) #include using namespace std;class X private: int a=0;/私有成员不允许赋初值 int &b; const int c; void setA(int i)a=i; X(int i) a=i;public: int X() a=b=0;/构造函数无返回值 X(int i, int j, int k) a=i; b=j; c=k; setC(int k) const c=c+k;/成员函数没有标明返回值类型.;int main() X x1; X x2(2);/私有成员函数不可被外界访问. X x3(1,2,3); x1.setA(3);/私有成员函数不可被外界访问. return 0;改正后的程序:#includeusing namespace std;class X private: int a; int b; int c;void setA(int i)a=i;X(int i) a=i;public: X() a=b=0;X(int i, int j, int k) a=i; b=j; c=k; void setC(int k) c=c+k;int main()X x1; X x3(1,2,3); return 0;2请先阅读下面的程序,写出程序运行的结果,然后再上机运行程序,验证自己分析的结果是否正确。(1)#include using namespace std;class testpublic:test();int getint( )return num;float getfloat( )return fl;test( );private:int num;float fl; test:test( )cout Initalizing default endl;num=0;fl=0.0; test:test( )cout Destructor is active endl;int main( ) test array2;cout array1.getint( ) array1.getfloat( ) endl;return 0;/结果:/Initalizing default/Initalizing default/0 0/Destructor is active/Destructor is active(2)#includeusing namespace std;#includeclass Xpublic: X(int x1,char *x2,float x3):a(x1),c(x3) b=new charsizeof(x2)+1; strcpy(b,x2); X():a(0),b(X:X(),c(10) X(int x1,char *x2=X:X(.),int x3=10):a(x1),b(x2),c(x3) X(const X&other) a=other.a; b=X:X(const X &other); c=other.c; void print() couta=atb=btc=cprint(); B.print();C.print();D.print(); return 0;结果;/a=4 b=X:X(int,char,float) c=32/a=0 b=X:X() c=10/a=10 b=X:X(.) c=10/a=0 b=X:X(const X &other) c=103在实验二第2题工资管理类Salary中定义构造函数初始化工资数据的各分项数据。该类的形式如下:class Salarypublic:Salary()初始化工资数据的各分项数据为0Salary() 初始化工资数据的各分项数据void setXX(double f) XX=f; double getXX() return XX; double RealSalary() /计算实发工资Private: Bouble Wage, Subsidy, Rent, WaterFee, ElecFee;其中,成员函数setXX()用于设置工资的各分项数据,成员函数getXX()用于获取工资的各分项数据,XX代表Wage、Subsidy等数据成员,如Wage对应的成员函数则为setWage()和getWage()。 实发工资=Wage+Subsidy-Rent-WaterFee-ElecFee编程完善该类的设计,并在主函数中测试该类的各成员函数。/编程完善该类的设计,并在主函数中测试该类的各成员函数。#includeusing namespace std;class salary public: salary(); salary(double a,double b,double c,double d,double e) wage=a;subsidy=b;rent=c;waterfee=d;elecfee=e; void setwage(double f)wage=f; void setsubsidy(double f)subsidy=f; void setrent(double f)rent=f; void setwaterfee(double f)waterfee=f; void setelecfree (double f)elecfee=f; double getwage() return wage; double getsubsidy() return subsidy; double getrent() return rent ; double getwaterfee() return waterfee; double getelecfee() return elecfee ; void RealSalary() cout最后实发的工资是:endl; cout(wage+subsidy-rent-waterfee-elecfee)endl; /计算实发工资 private: double wage; double subsidy; double rent; double waterfee; double elecfee;int main()class salary wang(4000.00,55.00,332.00,324.00,100.00);wang.RealSalary();return 0;4在实验二第3题中对职工类Employee定义构造函数实现以下功能:创建职工对象时,可以按不同方式指定职工信息。5 在实验二第4题中对三角形类定义构造函数完成三角形的初始化。#include#includeusing namespace std;class triangle public:triangle(double i,double j,double k)a=i;b=j;c=k; void area(); void zhouchang(); void intputxinxi();private:double a;double b;double c;double AREA;double ZHOUCHANG;void triangle:area()AREA=sqrt(4*a*a*b*b-(a*a+b*b-c*c)*(a*a+b*b-c*c)/4;void triangle:zhouchang()ZHOUCHANG=a+b+c;void triangle:intputxinxi()cout三角形的面积是:AREAendl三角形的周长是:ZHOUCHANGendl;int main() class triangle ex(6.0,8.0,10.0);ex.area();ex.zhouchang();putxinxi();return 0;6设计一个时钟类Clock。数据成员包括hour(小时)、minute(分钟)、second(秒)。要求用成员函数实现以下功能:(1)创建具有指定时钟(小时、分钟、秒)的Clock对象,默认时钟为00:00:00。(2)动态地设置时、分、秒。(3)在时间类的析构函数中输出“Good bye!”。(4)定义拷贝构造函数并调用。(5)在屏幕上按“时:分:秒”的格式显示时钟。(6)在主函数中测试该类。#include using namespace std;class Clockprivate:int hour;int min;int sec;public:Clock();/构造函数void SetHour(int hour);/设置时void SetMin(int min);/设置分void SetSec(int sec);/设置秒void PrintTime();/打印时间;void Clock:SetHour(int hour)if(hour=0&hourhour=hour;else cout小时不正确=0&minmin=min;else cout分钟不正确=0&secsec=sec;else cout秒数不正确endl;void Clock:PrintTime
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年音频切换台项目资金筹措计划书代可行性研究报告
- 革命文化资源融入初中历史教学探究-以百色市M中学为例
- 汽车传感器与检测技术电子教案:液位传感器
- Brand KPIs for neobanking Freetrade in the United Kingdom-英文培训课件2025.4
- 汽车传感器与检测技术电子教案:检测的作用与意义
- 几种类型小鼠缺氧实验报告范本
- 关+于儒学的现代转化问题-评现代新儒家的儒学转化观
- 介绍学院特色活动方案
- 物理中考一轮复习教案 十五讲 摩擦力 二力平衡
- 从江工会相亲活动方案
- 《如何克服肥胖:健康生活方式与营养指导》课件
- 环保政策下的电厂转型与可持续发展
- 智慧矿山无人机自动巡检解决方案
- 4.1.1喀斯特地貌课件高中地理人教版(2019)必修一
- 放疗治疗技术管理制度
- 新产品开发周期与研发进度规划计划
- 宁波华润兴光燃气有限公司招聘笔试冲刺题2025
- 2025年济南铁路局招聘笔试参考题库含答案解析
- 《资本论解读》课件
- 《上一堂朴素的语文课》读书交流
- 《生产公司岗位职责》课件
评论
0/150
提交评论