#include <iostream>
using namespace std;
class HardDisk
{
public:
virtual void work() = 0;
};
class Memory
{
public:
virtual void work() = 0;
};
class Cpu
{
public:
virtual void work() = 0;
};
class Computer
{
public:
Computer(HardDisk* handdisk, Memory* memory, Cpu* cpu)
{
m_handdisk = handdisk;
m_memory = memory;
m_cpu = cpu;
}
public:
void work()
{
m_handdisk->work();
m_memory->work();
m_cpu->work();
}
protected:
private:
HardDisk* m_handdisk;
Memory* m_memory;
Cpu* m_cpu;
};
class InterCpu : public Cpu
{
public:
void work()
{
cout << "我是iterl cpu 我工作良好" << endl;
}
};
class XSDisk : public HardDisk
{
public:
void work()
{
cout << "我是西数硬盘 工作良好" << endl;
}
};
class JSDMem : public Memory
{
public:
void work()
{
cout << "JSDMem 工作良好" << endl;
}
};
int main()
{
HardDisk* harddisk = NULL;
Memory* memory = NULL;
Cpu* cpu = NULL;
harddisk = new XSDisk;
memory = new JSDMem;
cpu = new InterCpu;
Computer* mycomputer = new Computer(harddisk, memory, cpu);
mycomputer->work();
//一般新建后删除
delete mycomputer;
delete cpu;
delete memory;
delete harddisk;
}