#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
enum CPU_Rank
{
P1=1,P2,P3,P4,P5,P6,P7
};
class CPU
{
public:
CPU(CPU_Rank r,int f,float v):rank(r),frequency(f),voltage(v)
{cout<<"CPU constructed!"<<endl;}
~CPU(){cout<<"CPU destructed!"<<endl;}
CPU_Rank getRank() const{return rank;}
int getFrequency() const{return frequency;}
float getVoltage() const{return voltage;}//外部接口函数,加const是为了防止误改类属性值
void setRank(CPU_Rank r){rank=r;}
void setFrequency(int f){frequency=f;}
void setVoltage(float v){voltage=v;}//用于改变类属性值的外部接口函数
void run(){cout<<"CPU running..."<<endl;}
void stop(){cout<<"CPU stop working"<<endl;}
private:
CPU_Rank rank;
int frequency;
float voltage;
};
enum RAM_Type
{
DDR2=2,DDR3,DDR4
};
class RAM
{
public:
RAM(RAM_Type t,int f,int s):type(t),frequency(f),size(s)
{cout<<"RAM constructed!"<<endl;
}
~RAM()
{cout<<"RAM destructed!"<<endl;
}
RAM_Type getType() const{return type;}
int getFrequency() const{return frequency;}
float getSize() const{return size;}//外部接口函数,加const是为了防止误改类属性值
void setType(RAM_Type t){type=t;}
void setFrequency(int f){frequency=f;}
void setSize(int s){size=s;}//用于改变类属性值的外部接口函数
void run(){cout<<"RAM running..."<<endl;}
void stop(){cout<<"RAM stop working"<<endl;}
private:
RAM_Type type;
int frequency;
int size;
};
enum CDROM_Interface
{
SATA,USB
};
enum CDROM_Install_Type
{
external,built_in
};
class CDROM
{
public:
CDROM(CDROM_Interface i,CDROM_Install_Type it,int s):interface(i),install_type(it),cache_size(s)
{cout<<"CDROM constructed!"<<endl;
}
~CDROM()
{cout<<"CDROM destructed!"<<endl;
}
CDROM_Interface getInterface() const{return interface;}
CDROM_Install_Type getInstallType() const{return install_type;}
int getCacheSize() const{return cache_size;}//外部接口函数,加const是为了防止误改类属性值
void setType(CDROM_Interface i){interface=i;}
void setInstallType(CDROM_Install_Type it){install_type=it;}
void setCacheSize(int s){cache_size=s;}//用于改变类属性值的外部接口函数
void run(){cout<<"CDRAM running..."<<endl;}
void stop(){cout<<"CDRAM stop working"<<endl;}
private:
CDROM_Interface interface;
CDROM_Install_Type install_type;
int cache_size;
};
class COMPUTER
{
public:
COMPUTER(CPU cpu,RAM ram,CDROM cdrom,int s,int b):my_cpu(cpu),my_ram(ram),my_cdrom(cdrom),storage_size(s),bandwidth(b)
{cout<<"COMPUTER constructed!"<<endl;
}
~COMPUTER()
{cout<<"COMPUTER destructed!"<<endl;
}
void run()
{
my_cpu.run();
my_ram.run();
my_cdrom.run();
}
void stop()
{
my_cpu.stop();
my_ram.stop();
my_cdrom.stop();
}
private:
CPU my_cpu;
RAM my_ram;
CDROM my_cdrom;
int storage_size;
int bandwidth;
};
int _tmain(int argc, _TCHAR* argv[])
{
CPU a(P2,300,1.2);
RAM b(DDR3,1600,8);
CDROM c(SATA,built_in,2);
COMPUTER my_computer(a,b,c,128,10);
my_computer.run();
my_computer.stop();
system("Pause");
return 0;
}#include "stdafx.h"
#include <iostream>
#includ