#include <iostream>
using 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;
}
#include <iostream>
using 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'
顺序