1.构建一个CPU类:
<pre name="code" class="cpp">enum CPU_Rank{ P1 = 1, P2, P3, P4, P5, P6, P7 };
//声明一个CPU类
class CPU{
private:
CPU_Rank rank; //CPU等级
int frequency; //CPU主频
float voltage; //电压
public:
CPU(CPU_Rank r, int f, float v)
{
rank = r;
frequency = f;
voltage = v;
cout << "构造了一个CPU!" << endl;
}
~CPU(){ cout << "析构了一个CPU!" << endl; }
CPU_Rank GetRank()const { return rank; }
int GetFrequency()const { return frequency; }
float GetVoltage()const { return voltage; }
void SetRank(CPU_Rank r){ rank = r; }
void SetFrequency(int f) { frequency = f; }
void SetVoltage(float v) { voltage = v; }
void Run(){ cout << "CPU开始运行!" << endl; }
void Stop(){ cout << "CPU停止运行!" << endl; }
};
2.构建一个RAM类:
<pre name="code" class="cpp">//声明一个RAM类
enum RAM_Type{DDR2=2,DDR3,DDR4};
class RAM{
private:
enum RAM_Type type;
unsigned int frequency; //MHz
unsigned int size; //GB
public:
RAM(RAM_Type t, unsigned int f, unsigned int s)
{
type = t;
frequency = f;
size = s;
cout << "构造了一个RAM" << endl;
}
~RAM(){ cout << "析构了一个RAM" << endl; }
RAM_Type GetType()const { return type; }
unsigned int GetFrequency()const { return frequency; }
unsigned int GetSize()const { return size; }
void SetType(RAM_Type t){ type = t; }
void SetFrequency(unsigned int f){ frequency = f; }
void SetSize(unsigned int s){ size = s; }
void Run(){ cout << "RAM开始运行!" << endl; }
void Stop(){ cout << "RAM停止运行!" << endl; }
};
3.构建一个CD_ROM类:
//声明一个CDROM类
enum CDROM_Interface{SATA,USB};
enum CDROM_Install_type{external,built_in};
class CD_ROM{
private:
enum CDROM_Interface interface_type;
enum CDROM_Install_type install_type;
unsigned int cache_size; //MB
public:
CD_ROM(CDROM_Interface i, unsigned int s, CDROM_Install_type it)
{
interface_type = i;
cache_size = s;
install_type = it;
cout << "构造了了一个CD_ROM!" << endl;
}
~CD_ROM(){ cout << "析构了一个CD_ROM!" << endl; }
CDROM_Interface GetInterfaceType()const { return interface_type; }
CDROM_Install_type GetInstallType()const{ return install_type; }
unsigned int GetCacheSize()const { return cache_size; }
void SetInterfaceType(CDROM_Interface i){ interface_type = i; }
void SetInstallType(CDROM_Install_type it){ install_type = it; }
void SetCacheSize(unsigned int s){ cache_size = s; }
void Run(){ cout << "CD_ROM开始运行!" << endl; }
void Stop(){ cout << "CD_ROM停止运行!" << endl; }
};
4.构造一个COMPUTER类:
<pre name="code" class="cpp">//构建COMPUTER类
class COMPUTER{
private:
CPU my_cpu;
RAM my_ram;
CD_ROM my_cdrom;
unsigned int storage_size; //GB
unsigned int bandwidth; //MB
public:
COMPUTER(CPU c, RAM r, CD_ROM cd, unsigned int ss, unsigned int bw);
~COMPUTER(){ cout << "析构了一个COMPUTER" << endl; }
void Run()
{
my_cpu.Run();
my_ram.Run();
my_cdrom.Run();
cout << "COMPUTER开始运行!" << endl;
}
void Stop()
{
my_cpu.Stop();
my_ram.Stop();
my_cdrom.Stop();
cout << "COMPUTER停止运行!" << endl;
}
};
COMPUTER::COMPUTER(CPU c, RAM r, CD_ROM cd, unsigned int ss, unsigned int bw) :my_cpu(c), my_ram(r), my_cdrom(cd)
{
storage_size = ss;
bandwidth = bw;
cout << "构造了一个COMPUTER!" << endl;
}
5.测试结果:
int main()
{
CPU a(P6, 300, 2.8f);
a.Run();
a.Stop();
cout << "******************" << endl;
RAM b(DDR3, 1600, 8);
b.Run();
b.Stop();
cout << "******************" << endl;
CD_ROM c(SATA, 2, built_in);
c.Run();
c.Stop();
cout << "******************" << endl;
COMPUTER my_computer(a, b, c, 128, 10);
cout << "******************" << endl;
my_computer.Run();
my_computer.Stop();
return 0;
}
运行结果:
来自清华大学MOOC课件