定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数Run()、Stop()。在main函数中定义Computer类的一个对象,测试这个类,分析成员函数的运行顺序。
(1)类的组合概念,即Computer类的数据成员为CPU类的一个对象cpu, RAM类的对象ram,CDROM类的对象cdrom,各个类的定义见上述实验。
(2)要求在Computer类的成员函数Run中依次显示COMPUTER、CPU、RAM、CDROM开始运行的信息。Stop函数的显示信息与Run的严格相反。
#include <iostream>
using namespace std;
enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};
enum CDROM_Size {A1=100,A2=200,A3=300,A4=400,A5=500,A6=650};
enum RAM_Capacity {B1=1,B2,B3,B4,B5,B6,B7};
class CPU {
private:
CPU_Rank rank; //等级
int frequency; //频率
float voltage; //电压
public:
CPU(CPU_Rank r=P1, int f=0, float v=0) { //构造函数的定义
rank = r;
frequency = f;
voltage = v; //初始化各数据成员
cout << "构造了一个CPU!" << endl;
}
CPU(CPU& c) {
rank = c.rank ;
frequency = c.frequency;
voltage = c.voltage; //初始化各数据成员
cout << "copy构造了一个CPU!" << endl;
}
void SetRank(CPU_Rank r);
void GetRank();
~CPU() {
cout << "析构了一个CPU!" << endl; //析构函数的定义
}
void Run() {
cout << "CPU开始运行!" << endl;
}
void Stop() {
cout << "CPU停止运行!" << endl;
}
};
void CPU::SetRank(CPU_Rank r) {
rank=r;
}
void CPU::GetRank() {
cout<<rank<<endl;
}
class RAM {
public:
RAM(RAM_Capacity r=B1,int f=0,int v=0) {
capacity = r;
Access_speed = f;
Pin = v;
cout << "构造了一个RAM!" << endl;
}
RAM(RAM& c) {
capacity = c.capacity ;
Access_speed = c.Access_speed;
Pin = c.Pin; //初始化各数据成员
cout << "copy构造了一个RAM!" << endl;
}
~RAM() {
cout << "析构了一个RAM!" << endl; //析构函数的定义
}
void Run() {
cout << "RAM开始运行!" << endl;
}
void Stop() {
cout << "RAM停止运行!" << endl;
}
void SetCapacity(RAM_Capacity r);
void GetCapacity(RAM_Capacity r);
private:
RAM_Capacity capacity; //容量 GB
int Access_speed; //存取速度
int Pin; //引脚数
};
void RAM::SetCapacity(RAM_Capacity r) {
r=capacity;
}
void RAM::GetCapacity(RAM_Capacity r) {
capacity=r;
cout<<capacity<<endl;
}
class CDROM {
public:
CDROM(int r,int f) {
size = r;
speed = f;
cout << "构造了一个CDROM!" << endl;
}
CDROM(CDROM& c) {
size = c.size;
speed = c.speed;
cout << "copy构造了一个CDROM!" << endl;
}
~CDROM() {
cout << "析构了一个CDROM!" << endl; //析构函数的定义
}
void Run() {
cout << "CDROM开始运行!" << endl;
}
void Stop() {
cout << "CDROM停止运行!" << endl;
}
void SetSize(int r);
void GetSize(int j);
private:
int size; //容量 MB
int speed; //速度
};
void CDROM::SetSize(int r) {
r=size;
}
void CDROM::GetSize(int j) {
size=j;
cout<<size<<endl;
}
class Computer {
private:
CPU c;
CDROM cd;
RAM r;
public:
Computer(CPU xp1,CDROM xp2,RAM xp3):c(xp1),cd(xp2),r(xp3) {
cout<<"构造了一个COMPUTER!"<<endl;
}
void Run() {
cout << "COMPUTER开始运行!" << endl;
c.Run();
cd.Run();
r.Run();
c.Stop();
cd.Stop();
r.Stop();
}
void Stop() {
cout << "COMPUTER停止运行!" << endl;
}
~Computer() {
cout << "析构了一个COMPUTER!" << endl; //析构函数的定义
}
};
int main() {
CPU a(P1,100.0f,100.0f);
CDROM b(A1,100);
RAM c(B1,50,50);
Computer(a,b,c);
return 0;
}
第一次写自己的博客,+.+。欢迎大家提出宝贵的建议。谢谢!