电脑组装的具体实现(多态)

复制代码
#include<bits/stdc++.h>
using namespace std;
class CPU{
    public:
    virtual void caculate()=0;
};
class Videocard{
    public:
        virtual void display()=0;
};
//内存条 
class Memory{
    public:
        virtual void storage()=0;
};
//电脑
class Computer{
    public:
    Computer(CPU *cpu,    Videocard *vc,    Memory *mem){
        m_cpu=cpu;
        m_vc=vc;
        m_mem=mem; 
    }
    //工作函数
    void work(){
        m_cpu->caculate();
        m_vc->display();
        m_mem->storage();
    } 
    private:
    CPU *m_cpu;
    Videocard *m_vc;
    Memory *m_mem; 
}; 
//具体厂商
//INer
class InterCPU : public CPU{
public:
virtual void caculate(){
    cout<<"INter的CPU开始计算"<<endl; 
}    
}; 
class InterVideocard:public Videocard{
    public:
        virtual void display(){
            cout<<"Inter的显卡开始显示了"<<endl;
        }
};
class InterMemory:public Memory{
    public:
        virtual void storage(){
            cout<<"Inter的内存开始存储了"<<endl;
        }
};
class lenovoCPU:public CPU{
public:
virtual void calculate(){
    cout<<"lenovo的CPU开始计算"<<endl; 
}    
}; 
class lenovoVideocard:public Videocard{
    public:
        virtual void display(){
            cout<<"lenovo的显卡开始显示了"<<endl;
        }
};
class lenovoMemory:public Memory{
    public:
        virtual void storage(){
            cout<<"lenovo的内存开始存储了"<<endl;
        }
};
void test01(){
    CPU *interCpu=new InterCPU;
    Videocard *intercard=new InterVideocard;
    Memory *interMem=new InterMemory;
    //创建第一台电脑
    Computer *computer1=new Computer(interCpu,intercard,interMem) ;
    computer1->work();
    delete computer1;
}
int main(){
    test01();
    return 0;
}
复制代码

 

posted @   艾鑫4646  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示