案例要求:

大致思路:

实现代码:

#include <iostream>
using namespace std;class CPU
{public:virtual void calculator() = 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->calculator();m_vc->display();m_mem->storage();}~Computer(){if (m_cpu != NULL){delete m_cpu;m_cpu = NULL;}if (m_vc != NULL){delete m_vc;m_vc = NULL;}if (m_mem != NULL){delete m_mem;m_mem = NULL;}}
private:CPU* m_cpu;VideoCard* m_vc;Memory* m_mem;};class IntelCPU : public CPU
{public:virtual void calculator(){cout << "Intel的CPU开始计算了" << endl;}
};class IntelVideoCard : public VideoCard
{public:virtual void display(){cout << "Intel的显卡开始显示了" << endl;}
};class IntelMemory : public Memory
{public:virtual void storage(){cout << "Intel的内存条开始存储了" << endl;}
};class LenovoCPU : public CPU
{public:virtual void calculator(){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* intelCpu = new IntelCPU;VideoCard* intelCard = new IntelVideoCard;Memory* intelMemory = new IntelMemory;Computer* computer1 = new Computer(intelCpu, intelCard, intelMemory);computer1->work();delete computer1;cout << "---------------------" << endl;Computer* computer2 = new Computer(new LenovoCPU,  new LenovoVideoCard ,new LenovoMemory);computer2->work();delete computer2;cout << "---------------------" << endl;Computer* computer3 = new Computer(new LenovoCPU, new IntelVideoCard, new LenovoMemory);computer3->work();delete computer3;
}int main()
{test01();return 0;
}

运行结果:

利用C++的多态写一个电脑组装的具体实现相关推荐

  1. 【b站黑马程序员C++视频学习笔记-多态案例三-电脑组装】

    多态案例三-电脑组装 电脑主要组成部件为CPU(用于计算),显卡(用于显示),内存条(用于存储).把每个零件封装出抽象父类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商.创建 ...

  2. 利用python来自己写一个服务器台账统计小工具

    利用python来自己写一个服务器台账统计小工具 前言 无奈呀,压力创造成品 背景是这样的,相信在看的各位在管理服务器密码的时候,肯定会有个台账啥的,当然咱也有,但是吧,为了安全期间,不允许出现在服务 ...

  3. C++多态案例三-电脑组装

    C++多态案例三-电脑组装 多态案例三-电脑组装 多态案例三-电脑组装 案例描述: 电脑主要组成部件为 CPU(用于计算),显卡(用于显示),内存条(用于存储) 将每个零件封装出抽象基类,并且提供不同 ...

  4. 用装饰者模式 动手写一个导弹系统组装功能(滑稽+1)

    话接上文,敌人导弹来袭,我们的雷达做出了及时反应,通过观察者模式通知了五大战区做好防御, <用观察者模式 动手写一个导弹预警系统(滑稽)> 现在轮到我们反击了. 目前国防部发布了指示要求我 ...

  5. c语言写一个电脑程序,C语言实现电脑关机程序

    本文实例为大家分享了C语言实现电脑关机的具体代码,供大家参考,具体内容如下 这个是我在网上搜索到的资料,其实也是很简单的. 想使用ESP8266完成这样一个操作--远程关闭电脑,达到人在别的任何地方都 ...

  6. 利用cookie和jsp写一个简单的登录判断的网页,并获取上次的登录的时间。

    要求:因为只是简单制作,没必要连数据库,直接用确定值去判断.然后就是第一次登录的时候需要获取到登录的时间,然后在下次登录的时候将上次获取到的时间输出. 思路:首先第一个,第一次登录的jsp(姑且当做注 ...

  7. java编写一个动物类_Java编程 实现类的继承与多态 写一个动物类。成员变量为动物的种类,成员方法是动物叫声。...

    感觉写得够详细了,如果不懂M我abstract class Animal { //动物的种类用变量n表示 String n; //动物的声音用变量s表示 String s; //在这里声明了一个抽象方 ...

  8. 用 Python 写一个电脑监控程序

    大家好,我是菜鸟哥! 继打游戏.看视频等摸鱼行为被监控后,现在打工人离职的倾向也会被监控.最近有网友表示,所在企业安装了行为感知系统,该系统可以提前获知员工跳槽念头. 一时间,"打工人太难了 ...

  9. 【Python】三个步骤,写一个电脑监控程序

    很多小伙伴说自己的公司在监控自己有没有摸鱼.偷懒.有时候想偷偷懒都会被发现,今天就带大家来解开这神秘的面纱.搞懂了这个,估计你就知道怎么去摸鱼了. 监控键盘 如果公司偷偷在我们的电脑上运行了一个后台进 ...

  10. 1、 利用AUTO CAD脚本写一个插件,可以读取CAD中的图形公式,并输出为一个Excel计算表格...

    对于如何使用AutoCAD脚本编写插件,下面是一些步骤指导: 了解AutoCAD脚本语言,如LISP或AutoLISP,并学会使用它们. 制定插件的功能需求,明确它需要读取的CAD图形公式和输出的Ex ...

最新文章

  1. Golang——HTTP编程请求和响应实现
  2. SAP License:Query传输的相关操作
  3. springboot 关于第三方包 打包问题
  4. IIS与Tomcat的区别
  5. 渗透测试(PenTest)基础指南
  6. mysql5.7企业版下载_MySQL v5.7.20 官方正式版(32/64位 安装版与zip解压版)
  7. 探索性因子分析和验证性因子分析有什么区别?
  8. HTML页面浏览历史,浏览历史记录功能
  9. maya海龟烘焙法线_maya法线烘焙
  10. dva 配置antd
  11. 简单三步快速实现内网穿透
  12. Linux常用指令---系统负载
  13. python笔记:数据分析的实际应用 工具小记
  14. 企业全面质量管理的九个阶段
  15. 爱壁纸hd电脑版|爱壁纸hd电脑版下载
  16. 无法找到来自源 nvlddmkm 的事件 ID 14 的描述
  17. 图解网络(三)——IP
  18. U盘为Linux加速,用u盘启动linux的步骤
  19. 高仿途牛App下拉顶部滑出更多
  20. 霸榜多个CV任务!开源仅两天,已收获2.1k star

热门文章

  1. 无需软件,使用copy命令合并FLV文件
  2. ddos防火墙防御假人攻击测评
  3. nyoj 191 小柯的问题
  4. Android Dex 分包+热修复(QQ空间技术方案)
  5. 基于单片机的自行车里程监测系统的设计(自行车码表)
  6. 无法复制:数据错误(循环冗余检查)的解决方法
  7. SQL语句----CASE WHEN 的用法简介
  8. nagios的原理及server端跟client端安装配置全部过程
  9. JS 基础: 你真的了解 console 吗?
  10. 2021年焊工(初级)考试报名及焊工(初级)实操考试视频