电脑组装的具体实现(多态)
#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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示