当前位置:网站首页>多态案例三电脑组装
多态案例三电脑组装
2022-08-08 07:59:00 【老鱼37】
//多态案例三 --调用组装
//CPU---计算 显卡---显示 内存条--储存
class CPU
{
public:
//计算
virtual void Calculator() = 0;
};
class Graphics
{
public:
virtual void Display() = 0;
};
class MemoryModule
{
public:
virtual void Store() = 0;
};
//创建一个电脑类
class Computer
{
public:
//构造函数
Computer(CPU* cpu, Graphics* gra, MemoryModule* mem)
{
m_cpu = cpu;
m_gra = gra;
m_mem = mem;
}
//电脑工作
void Work()
{
m_cpu->Calculator();
m_gra->Display();
m_mem->Store();
}
//释放工作零件
~Computer()
{
if (m_cpu != NULL)
{
delete m_cpu;
m_cpu = NULL;
}
else if(m_gra != NULL)
{
delete m_gra;
m_gra = NULL;
}
else if(m_mem != NULL)
{
delete m_mem;
m_mem= NULL;
}
}
private:
//调用包含了CPU Graphics MemoryModule
CPU* m_cpu;
Graphics* m_gra;
MemoryModule* m_mem;
};
//具体厂商
class intermanCPU:public CPU
{
public:
virtual void Calculator()
{
cout << "inter的CPU在运转了" << endl;
}
};
class intermanGRA :public Graphics
{
public:
virtual void Display()
{
cout << "inter的显卡在运转了" << endl;
}
};
class intermanMem :public MemoryModule
{
public:
virtual void Store()
{
cout << "inter的内存条在运转了" << endl;
}
};
int main()
{
//实例化电脑的类对象
//先把零件类对象实例化
CPU* interCPU = new intermanCPU;//cpu
Graphics* interGra = new intermanGRA;//显卡
MemoryModule* interMem = new intermanMem;//内存条
//将零件全部组装到电脑上
//组装一台因特尔的电脑
Computer* interComputer = new Computer(interCPU, interGra, interMem);
interComputer->Work();
delete interComputer;//释放堆上创建的内存空间
}
运用知识点: 纯虚函数,继承,堆空间创建、删除
如有错误,多多指教!
边栏推荐
- 动手学数理统计(2)
- CesiumJS 更新日志 1.96 与 1.97 - 新构建工具 esbuild 体验及 Model API 更替完成
- 快速排序
- 物联网安全系列 - 非对称加密算法 ECDH
- At the time of data intelligence, Jiuzhang Yunji DataCanvas won the "Most Investment Value Company"
- 音视频入门知识-- --相关名词、术语、概念
- BLE安全之配对流程剖析(1)
- 蓝牙5.2新特性 LE Audio - Isochronous channel
- 动手学数理统计(1)
- 了不起的certbot申请免费SSL证书
猜你喜欢
随机推荐
阿里巴巴的三个“一”打通业务价值
大文件上传时如何做到 秒传?
Task01 文件处理与邮件自动化
优先队列的实现原理
进程间的五种通信方法
Task03:PyTorch可视化
选择适合投稿的英文期刊或会议的方法
数据库_JDBC
Task 06 其它优秀的小工具
Task02:PyTorch进阶训练技巧
动手学线性代数
EasyExcel-(1)使用篇
XXL-JOB入门教学
Datawhale社区黑板报(第二期)
了不起的certbot申请免费SSL证书
BLOB, TEXT, GEOMETRY or JSON column ‘xxxx‘ can‘t have a default value
物联网安全 - 对称加密算法
超强企业建站系统介绍:五大特点
lua --- 基本语法学习
如何解决大团队需求交付周期长的问题?









![[Raspberry Pi] vim editor](/img/a8/6cfdeefa044dfa44b603654ea11a98.png)