#include<iostream>
using namespace std;
enum RAM_Type {DDR2=2, DDR3, DDR4};
enum CPU_Rank {P1,P2,P3,P4,P5,P6};
enum ROM_Type{SATA,USB};
enum ROM_Installation{external,builtin};
class RAM
{
private:
enum RAM_Type type;
int frequency;
int size;
public:
RAM(RAM_Type t,int f,int s)
{
type=t;
frequency=f;
size=s;
cout<<"构建了一个RAM!"<<endl;
}
void Run()
{
cout<<"RAM启动!"<<endl;}
void Stop()
{
cout<<"RAM停止!"<<endl;
}
void print()
{
cout<<"RAM版本为"<<type<<",频率为"<<frequency<<"赫兹,大小为"<<size<<"G"<<endl;
}
~RAM(){cout<<"析构了一个RAM!"<<endl;}
};
class CPU
{
private:
enum CPU_Rank rank;
int frequency;
int voltage;
public:
CPU(CPU_Rank r,int f,int v)
{
rank=r;frequency=f;voltage=v;
cout<<"构建了一个CPU!"<<endl;
}
void Run()
{
cout<<"CPU启动!"<<endl;}
void Stop()
{
cout<<"CPU停止!"<<endl;
}
void print()
{
cout<<"CPU等级为"<<rank<<",频率为"<<frequency<<"赫兹,电压为"<<voltage<<"伏特"<<endl;
}
~CPU()
{cout<<"析构了一个CPU!"<<endl;}
};
class ROM
{
private:
enum ROM_Type type;
enum ROM_Installation installation;
int size;
public:
ROM(ROM_Type t,ROM_Installation i,int s)
{
type=t;installation=i;size=s;
cout<<"构建了一个ROM!"<<endl;
}
void Run()
{
cout<<"ROM启动!"<<endl;}
void Stop()
{
cout<<"ROM停止!"<<endl;
}
void print()
{
cout<<"ROM接口类型为"<<type<<",安装方式为"<<installation<<",大小为"<<size<<"G"<<endl;
}
~ROM()
{cout<<"析构了一个ROM!"<<endl;}
};
class Computer
{
private:
CPU cpu;
RAM ram;
ROM rom;
public:
Computer(CPU c,RAM a,ROM o):cpu(c),ram(a),rom(o)
{
cout<<"构建了一个Computer!"<<endl;
}
void Run()
{ cpu.Run();
ram.Run();
rom.Run();
cout<<"Computer启动!"<<endl;}
void Stop()
{ cpu.Stop();
ram.Stop();
rom.Stop();
cout<<"Computer停止!"<<endl;
}
void print()
{
cpu.print();
ram.print();
rom.print();
cout<<"这台电脑不能吃鸡!"<<endl;
}
};
int main()
{
CPU a(P1,1333,5);
RAM b(DDR4,1333,8);
ROM c(SATA,external,500);
Computer d(a,b,c);
d.Run();
d.print();//枚举类型只能输出整数 不能输出常量名
d.Stop();
return 0;
}
输出的构造和析构次数不一样是因为