#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;
}