类的定义与使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的和任务
类的定义与使用
1)掌握类的概念、定义格式、类与结构的关系、类的成员属性和类的封装性;
2)掌握类对象的定义;
3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别;
4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数;
二、实验原理介绍
验证性实验;
通过建立类及对象,用类的成员函数和对象访问类的成员;
利用建立类的构造函数,完成类的成员的初始化工作;
三、实验设备介绍
软件需求: Visual C++ 6.0
四、实验内容
1、声明一个CPU类,包含等级(rank)、频率(freauency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中rank为枚举类型,声明为enum CPU_Rank { p1=1,p2,p3,p4,p5,p6,p7},frequency为单位是MHz的整形数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。
实验原理:构造CPU类私有成员为等级(rank)、频率(freauency)、电压(voltage),其中rank为枚举类型,声明为enum CPU_Rank { p1=1,p2,p3,p4,p5,p6,p7},然后设置public 的构造函数CPU,有频率和电压。使频率f等于形参x,电压u等于y,此为构造的函数。然后运用析构函数,其符号为~,运用析构函数。一个类只能定义一个析构函数,析构函数
没有形参,且其顺序较特殊,对于含有多个对象的程序,先创建的对象后析构,后创建的对象先析构。所以析构函数出现在最后。此程序中,三个对象CPU run stop ,CPU析构,在主函数中运行了构造函数,run stop执行后析构。
实验源程序:
#include
class CPU
{private:
int f;
double u;
enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
public:
CPU(int x,double y)
{
f=x;
u=y;
cout<<"调用构造函数"<<"f="< } ~CPU() {cout<<"调用析构函数"<<"f="< void run(); void stop(); }; void CPU::run() { cout<<"开始执行程序"< cout<<"等级:"< cout<<"频率:"< cout<<"电压:"< } void CPU::stop() { cout<<"程序结束"< int main() { CPU cpu(20000,220); cpu.run(); cpu.stop(); return 0; } 程序运行结果: 2、声明一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等 等,有两个公在成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 实验原理:本程序段中定义4个类。Computer中引用其他CPU RAM CDRAM 三个类中的对象,引用的格式如下:在Computer私有成员中设置引用其他类的对象。如CPU& cpu;RAM& ram;CDROM& cdrom;构造类的构造函数和析构函数,每个类中都有run 和stop 两个对象。 实验源程序: #include class CPU {private: int frequency; float voltage; public: CPU(int f,float v) { frequency=f; voltage=v; cout<<"调用CPU类结构函数:"<<"f="< } ~CPU() {cout<<"调用CPU类析构函数:"<<"f="< void run() {cout<<"CPU开始运行"< void stop() {cout<<"CPU结束运行"< }; class RAM {private: int size; public: RAM(int s=0) { size=s; cout<<"调用RAM类结构函数:"<<"size="< } ~RAM() {cout<<"调用RAM类析构函数:"<<"size="< void run() {cout<<"RAM开始运行"< void stop() {cout<<"RAM结束运行"< }; class CDROM