当前位置:网站首页>多态案例三电脑组装
多态案例三电脑组装
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;//释放堆上创建的内存空间
}
运用知识点: 纯虚函数,继承,堆空间创建、删除
如有错误,多多指教!
边栏推荐
猜你喜欢
随机推荐
Offensive and defensive world - leaking
文件包含漏洞-知识点
regular expression
蓝牙Mesh简介
volatile在C语言中的基本使用方法
优雅地处理重复请求(并发请求)
C#实现在企业微信内发送消息给指定人员帮助类
Database_JDBC
物联网安全 - 密码学概述
六十分之七——焦虑路上的涅槃
数据治理(三):数据质量管理
【树莓派】vim编辑器
信息学奥赛一本通 1923:【03NOIP普及组】数字游戏 | 洛谷 P1043 [NOIP2003 普及组] 数字游戏
正则表达式
包含漏洞-读写文件以及执行命令
The industry's first "Causal Inference Whole Process" Challenge!WAIC 2022 · Hackathon invites global developer elites to challenge
攻防世界——lottery
【枚举】连续因子
DAY5-深度学习100例-卷积神经网络(CNN)天气识别
物联网安全-消息认证码