首页 > 其他分享 >2.8 组装计算机案例分析

2.8 组装计算机案例分析

时间:2024-03-19 21:44:56浏览次数:24  
标签:厂商 组装 virtual CPU 案例 2.8 抽象 零件 class

#include<iostream>
using namespace std;


//案例描述
//电脑主要组成部件为CPU,显卡,内存条
//将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商提供cpu、nVidia厂商提供显卡、Samsung提供内存条
//创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口
//测试时组装三台不同的电脑进行工作


//1、先抽象出每个零件的类
class CPU 
{
	virtual void calculate() = 0;	//抽象计算函数
};

class VideoCard 
{
	virtual void display() = 0; //抽象显示函数 纯虚函数
};

class Memory
{
	virtual void storage() = 0; //抽象存储函数
};

//2、具体零件的厂商

//1.Intel厂商 生产cpu
class IntelCpu : public CPU
{
public:
	IntelCpu()
	{
		cout << "采用的是Intel的CPU" << endl;
	}
	virtual void calculate()
	{
		cout << "Intel的CPU开始计算了" << endl;
	}
	//纯虚析构函数
	virtual ~IntelCpu() = 0;
};
IntelCpu::~IntelCpu()
{
	cout << "IntelCpu 的纯虚析构函数调用!" << endl;
}


//2.Nvidia厂商,生产显卡
class Nvidia : public VideoCard
{
public:
	Nvidia()
	{
		cout << "采用的是Nvidia的显卡" << endl;
	}

	virtual void display()
	{
		cout << "Nvidia的GPU开始计算图形了" << endl;
	}

	virtual ~Nvidia() = 0;
};
Nvidia::~Nvidia()
{
	cout << "Nvidia 的纯虚析构函数调用!" << endl;
}

//3.Samsung厂商 生产内存条
class Samsung : public Memory
{
public:
	Samsung()
	{
		cout << "采用的是Sumsung的内存条" << endl;
	}

	virtual void storage()
	{
		cout << "Samsung的内存条开始存储数据了" << endl;
	}

	virtual ~Samsung() = 0;
};
Samsung::~Samsung()
{
	cout << "Samsung 的纯虚析构函数调用!" << endl;
}


//3、电脑类  用来组装电脑 继承于三大零件厂商
class Computer :public IntelCpu, public Nvidia, public Samsung
{
public:
	//构造函数 传入三个零件的 指针
	Computer(string cpu, string gpu, string memory)
	{
		//在堆区创建一个属性,用一个指针来维护
		m_cpu = new string(cpu);
		m_GPU = new string(gpu);
		m_memory = new string(memory);
	}

	//提供工作的函数 组装一台电脑
	void assemble()
	{
		//调用每个零件工作的接口
	 	calculate();
		display();
		storage();
	}

	//析构函数
	~Computer()
	{
		//if (m_cpu != NULL && m_GPU != NULL && m_memory != NULL)
		if(m_cpu != NULL)
		{
			cout << "这是computer的析构函数调用" << endl;
			delete m_cpu;
			m_cpu = NULL;
		}
		if (m_GPU != NULL)
		{
			cout << "这是computer的析构函数调用" << endl;
			delete m_GPU;
			m_GPU = NULL;
		}
		if (m_memory != NULL)
		{
			cout << "这是computer的析构函数调用" << endl;
			delete m_memory;
			m_memory = NULL;
		}
	}

public:
	string* m_cpu;		//指针类型属性
	string* m_GPU;
	string* m_memory;

};

//测试函数
void test()
{
	Computer* computer = new Computer("Intel", "Nvidia", "Sumsung");
	cout << "电脑的名称叫computer" << endl;
	computer->assemble();
	delete computer;
}

int main()
{
	test();
	return 0;
}

标签:厂商,组装,virtual,CPU,案例,2.8,抽象,零件,class
From: https://www.cnblogs.com/H43724334/p/18084013

相关文章

  • GEE高阶案例——利用eemont进行ee.Number对象类的运算(加减成熟运算公式)
    本教程的主要目的是利用eemont包对数字对象进行分析 代码!pipinstalleemont!pipinstallgeemapimportee,eemont,geemapimportgeemap.colormapsascm进行EE验证 验证并初始化地球引擎和地球地图。 Map=geemap.Map()让我们定义一些ee.Number对象作为近......
  • Golang案例开发之gopacket监听网卡抓包(2)
    文章目录前言二、实践监听网卡抓包1.代码2.知识点OpenLive方法SetBPFFilter断言总结前言本节实战,监听指定网卡,进行网络抓包,根据分层,解析不同分层包的内容。二、实践监听网卡抓包1.代码代码如下(示例):packagemainimport( "fmt" "log" "......
  • 第七章 Windows 10常见故障排查_实验案例一
    实验案例一:使用Windows安全模式解决系统故障1、实验环境    某公司的计算机全部安装了Windows10操作系统.公司员工由于操作不当,误安装了错误的驱动程序.导致计算机无法正常启动,现需要将错误的驱动程序卸载.2、需求描述通过安全模式进入操作系统。卸载掉存在兼容性......
  • Windows 10常见故障排查_实验案例(一)
    实验案例一:使用Windows安全模式解决系统故障1、实验环境    某公司的计算机全部安装了Windows10操作系统,公司员工由于操作不当,误安装了错误的驱动程。导致计算机无法正常启动,现需要将错误的驱动程序卸载。2、需求描述通过安全模式进入操作系统。卸载掉存在兼容性......
  • 第七章 Windows 10 常见故障排查_案例一
    实验案例一:使用Windows安全模式解决系统故障1、实验环境        某公司的计算机全部安装了Windows10操作系统,公司员工由于操作不当,误安装了错误的驱动程序,导致计算机无法正常启动,现需要将错误的驱动程序卸载,2、需求描述通过安全模式进入操作系统卸载掉存在兼容......
  • 阿里ModelScope应用案例-cnblog
    ​信息抽取(实体识别)分词人像抠图摘要生成人体关键点表格搜索文本分类自然语言理解人像卡通化人像增强算法图文检索大模型与Agent文字识别......
  • 简读+案例:一文带你秒懂IEEE 754浮点数~
    一、简介1、常见的浮点数表示方式是IEEE754标准,它规定了浮点数的存储格式和运算规则,这个标准定义了两种浮点数表示:单精度和双精度。2、任何一个浮点数的二进制数可以写为:NUM=(-1)^S*2^E*M。以float32类型举例:    2.1、S表示符号:S为0时表示一个正数;当S为1......
  • Threejs 车场景案例
    效果如下:本来上传视频的,视频还在审核中,通过之后可以看看各位大佬进来关注下:技术:使用threejs框架体系开发,需要具体的源码关注回复:"车“即可获取下载地址谢谢,不光有这个场景,还有更多的场景在持续免费的更新中,谢谢支持!......
  • 通用定时器功能案例 RGB 直流电机 舵机 超声波
    复盘局:RGB彩灯:(定时器输出比较功能)        功能效果:按下按键1亮红灯 按下按键2亮绿灯 按下按键3亮蓝灯 按下按键4随机变色RGB彩灯原理:通过改变三个灯不同的亮度混合在一起形成不同的颜色总体配置思路:    1.初始化配置        {     ......
  • ECharts实训案例
    实训1:会员基本信息及消费能力对比分析    1.训练要点:        (1)掌握堆积柱状图的绘制        (2)掌握标准条形图的绘制        (3)掌握瀑布图的绘制      2.实现实录及步骤  (1)在VSCode中依次创建3个.html文件,分别为s......