- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告第四章类与对象.doc
C++实验报告实验4类与对象
一、 实验冃的
1、 掌握类的声明和使用
2、 掌握类的声明和对象的声明
3、 复习具有不同访问属性的成员的访问方式
4、 观察构造函数和析构函数的执行过程
5、 学习类的组合使用方法
6、 使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、 成员函数的执行顺序
二、 实验任务
1、 声明一个CPU类,包含等级rank、频率什equency、电压voltage等属性, 冇两个公冇成员函数run、stop。其屮,rank为枚余觉型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency MHz 的整数型,voltage 为
浮点型的电压值。观察构造函数好析构函数的凋用顺序。
2、 声明一个简单的Computer类,冇数据成员芯片cpu、内存ram、光驱cdrom 等,育两个公育成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。
3、 设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型 人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号 等。其中出生F!期声明为一个F!期类内嵌子对象。用成员函数实现对人员信息的 录入和显示。耍求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、 组合。
三、 实验内容
任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明, 经杳询相关书籍,知道应在类外进行声明。初次用类來进行编程,在概念上是宥 一些浞乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后, 明0其中道理。
源程序:
//Lab4_1 .cpp
#includeiostream
using namespace std;
enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};
class CPU { //CPU 类的定义
private: //私有数据成员 CPU_Rank rank; int frequency;
float voltage; public: //外部接口
CPU(CPU_Rank r,int f,float v) { //CPU 类的构造函数 rank=r; frequency=f; voltage=v;
cout?n构造了一个 CPU!?’endl;
}
?cpu() { //cpu类的析构函数
cout??析构了一个 CPU!n?endl;
}
void run()
{cout?CPU 开始运行?’endl;} void stop()
{cout?CPU 停止运行《endl;}
};
//主函数
int main(){
//建立
//建立CPU类的对象
}
实验结果:
从debug调试屮可知,在创建类的对象时,首先调用其构造函数,之后,在其 他成员函数调用结束后,对象的生存期结束,系统便自动调用析构函数,进行析 构。
DEBUG调试;
1、程序准备执行CPU类的构造函数
名称 1
I值
f
300
P1
1
P2
2
P3
3
P4
4
P5
5
P6
6
P7
7
r
P6
u
2.00000
=02、执行构造函数的过程a.
=0
CPU(CPU_Rank r ,int F ,Float u) //CPU类的构造函数 rank = r ;
Frequency = F ; uoltageu ;
cout??构基了 一-^CPUfXCendl ;
~CPU() CPU类的析构函数
cout〈??析构了 ——个CPU?.endl ;
uoid run()
cout.CPU开始运行??endl ; uoid stop O
cout:..CPU停止运行;
tF^t:|cPUr:CPU(CPU Ranlc int, float)
名称
值
F
300
Frequency
-858993U6O
r
P6
rank
P6
田 this
OXOO12FF68
b.
frequency=f; cj uoltage=u;
cout■■构造了一个CPU?.Xendl;
~CPU() < //CPU类的析构函数
cout<〈 ■■析构了一个 CPU?..<〈endl;
uoid run)
cout?..CPU开始运行..卯11; uoid stop()
cout〈〈..CPU停止运行■?endl;
HI I
上下文:|cpu::cpu cpu
_Rank, int, float)
名称
值
300
frequency
300
田 this
0x0012ff68
u
2.00000
uoltage
-1.
文档评论(0)