C++学习笔记(Day6 实验四)

本文介绍了如何使用C++定义和操作CPU、RAM和CDROM类,包括枚举类型和对象的构造、析构、属性设置和操作。主要展示了如何实例化这些组件并演示其基本功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#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'

顺序

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值