#includeusing namespace std; enum CPU_Rank{ P1=1,P2,P3,P4,P5,P6,P7};//声明枚举类型 class CPU { private: CPU_Rank rank; int frequency; 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;}//const说明函数参数和返回值 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;} }; //主函数 int main() { CPU a(P6, 300, 2.8);// a.run(); a.stop(); a.GetFrequency(); a.SetFrequency(200); return 0; }
#includeusing namespace std; enum RAM_type{ DDR2=2,DDR3,DDR4};//声明枚举类型 enum CDROM_Interface{ external,built_in};//声明枚举类型 enum CDROM_Install_type{ SATA,USB};//声明枚举类型 enum CPU_Rank{ P1=1,P2,P3,P4,P5,P6,P7};//声明枚举类型 class RAM { private: enum RAM_type type; unsigned int frequency;//MHZ unsigned int capacity;//GB public: RAM(RAM_type t,unsigned int f, unsigned int c){ type = t; frequency = f; capacity = c; cout << "构造了一个RAM!" << endl; }; ~RAM(){cout << "析构了一个RAM" << endl;}; RAM_type GetType() const{return type;} unsigned int GetFrequency() const{return frequency;} unsigned int GetCapacity() const{return capacity;} void SetType(RAM_type t){type = t;} void SetFrequency(unsigned int f){frequency = f;} void SetCapacity(unsigned int c){capacity = c;} void Run(){cout << "RAM开始运行!" << endl;} void Stop(){cout << "RAM停止运行!" << endl;} }; class CDROM { private: enum CDROM_Interface interface_type; enum CDROM_Install_type install_type; unsigned int cache_size; public: CDROM(CDROM_Interface i,unsigned int s,CDROM_Install_type it){ interface_type = i; cache_size = s; install_type = it; cout << "构造了一个CDROM!" << endl; } ~CDROM(){cout << "析构了一个CDROM" << endl;}; CDROM_Interface GetInterface() const{return interface_type;} CDROM_Install_type GetInstall_type() const{return install_type;} unsigned int GetCache_size() const{return cache_size;} void SetInterface(CDROM_Interface i){interface_type = i;} void SetInstall_type(CDROM_Install_type it){install_type = it;} void SetCache_size(unsigned int c){cache_size = c;} void Run(){cout << "CDROM开始运行!" << endl;} void Stop(){cout << "CDROM停止运行!" << endl;} }; class CPU { private: CPU_Rank rank; int frequency; float voltage; public: CPU(CPU_Rank r, int f, float v){ rank = r; frequency = f; voltage = v; cout << "构造了一个CPU!" << endl; } CPU(CPU &c){ rank = c.rank; frequency = c.frequency; voltage = c.voltage; cout << "拷贝构造了一个CPU"<< endl; } ~CPU(){ cout << "析构了一个CPU!" << endl; } CPU_Rank GetRank() const{return rank;}//const说明函数参数和返回值 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;} }; class COMPUTER { private: CPU my_cpu; RAM my_ram; CDROM my_cdrom; unsigned int storage_size;//GB unsigned int bandwidth;//MB public: COMPUTER(CPU p, RAM r, CDROM cd,unsigned int s,unsigned int b); ~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::COMPUTER(CPU p,RAM r,CDROM cd, unsigned int s,unsigned int b):my_cpu(p),my_ram(r),my_cdrom(cd){ storage_size = s; bandwidth = b; cout << "构造了一个COMPUTER!" << endl; } //主函数 int main() { CPU a(P6, 300, 2.8);// a.Run(); a.Stop(); cout <<"**********************n"; RAM b(DDR3,1600,8); b.Run(); b.Stop(); cout <<"**********************n"; CDROM c(built_in,2,SATA); c.Run(); c.Stop(); cout <<"**********************n"; COMPUTER my_computer(a,b,c,128,10); cout <<"**********************n"; my_computer.Run(); my_computer.Stop(); cout <<"**********************n"; return 0; };
错误描述:No matching constructor for initialization of 'CDROM'
顺序



