电脑组装
#include <iostream>#include <string>using namespace std;class CPU { public: virtual void Calc() = 0; };class GPU { public: virtual void Display() = 0; };class RAM { public: virtual void Storge() = 0; };class Computer {public: Computer(CPU* cpu, GPU* gpu, RAM* ram) { //将组成电脑的三个组件传进来 this->m_CPU = cpu; //成员组件将会是传进来的内容 this->m_GPU = gpu; this->m_RAM = ram; } void Work() { //工作函数调用 m_CPU->Calc(); m_GPU->Display(); m_RAM->Storge(); } ~Computer() { //自身的析构释放堆数据 if (m_CPU != NULL) { delete m_CPU; m_CPU = NULL; }else if (m_GPU != NULL) { delete m_GPU; m_GPU = NULL; } else if(m_RAM != NULL) { delete m_RAM; m_RAM = NULL; } }private: CPU* m_CPU; GPU* m_GPU; RAM* m_RAM;};class IntelCPU:public CPU { //Intel的CPU必须继承CPU的纯虚函数public: void Calc() { cout << "Intel CPU Processing" << endl; } };class IntelGPU :public GPU {public: void Display() { cout << "Intel GPU Displaying Images" << endl; }};class IntelRAM:public RAM{public: void Storge() { cout << "Intel RAM Storging Data" << endl; }};class DellRAM :public RAM {public: void Storage() { cout << "Dell RAM Storageing Data" << endl; }};class DellGPU :public GPU {public: void Display() { cout << "Dell GPU Displaying Images" << endl; }};class DellCPU :public CPU {public: void Calc() { cout << "Dell CPU Processing" << endl; }};void example(){ CPU* cpu = new IntelCPU;//CPU使用IntelCPU进行创建 GPU* gpu = new DellGPU;//在堆区创建GPU RAM* ram = new IntelRAM; Computer *PC1 = new Computer(cpu, gpu, ram); //在堆区创建电脑,然后在堆区进行组装 PC1->Work(); delete PC1;//释放掉}int main() { example(); return 0;}