C++ 电脑组装具体实现

一、问题描述

    电脑主要组成部件为CPU(用于计算),SCREEN(用于显示)与MEM(用于存储),
    要求将每个部件封装成抽象基类,并提供不同厂商生产的不同部件,例如 Intel 或者 Lenovo
    创建电脑类提供让电脑工作的函数,并且调用每个部件工作的接口函数
    测试时组装三台不同的电脑进行工作

二、代码实现

#include <iostream>
/*
问题描述:
	电脑主要组成部件为CPU(用于计算),SCREEN(用于显示)与MEM(用于存储),
	要求将每个部件封装成抽象基类,并提供不同厂商生产的不同部件,例如Intel厂商或者Lenovo厂商
	创建电脑类提供让电脑工作的函数,并且调用每个部件工作的接口函数
	测试时组装三台不同的电脑进行工作 
*/
using namespace std;

class CPU{
	public : 
	virtual calculator() = 0;	
};

class SCREEN{
	public : 
	virtual show() = 0;	
};

class MEM{
	public : 
	virtual save() = 0;	
};

class Intel : public CPU, public SCREEN, public MEM {
	public :
		calculator() {
			cout << "Intel 的 CPU 计算" << endl; 
		}	
		show() {
			cout << "Intel 的 SCREEN 显示" << endl; 
		}
		save() {
			cout << "Intel 的 MEM 存储" << endl; 
		}
}; 

class Lenovo : public CPU, public SCREEN, public MEM {
	public :
		calculator() {
			cout << "Lenovo 的 CPU 计算" << endl; 
		}	
		show() {
			cout << "Lenovo 的 SCREEN 显示" << endl; 
		}
		save() {
			cout << "Lenovo 的 MEM 存储" << endl; 
		}
}; 

class Computer{
	private :
		CPU *cpu;
		SCREEN *screen;
		MEM* mem;
		
	public :
		Computer(CPU *c, SCREEN *s, MEM* m) : mem(m), screen(s), cpu(c) {}
		
		void test() {
			cout << "------------测试开始-----------" << endl;
			cpu->calculator();
			screen->show();
			mem->save(); 
			cout << "------------测试结束-----------" << endl;
		}
};
 
int main() { 	
	Computer *com1 = new Computer(new Lenovo, new Intel, new Lenovo);
	com1->test();
	
	Computer *com2 = new Computer(new Intel, new Lenovo, new Intel);
	com2->test();
	
	delete com1;
	delete com2;
}

三、程序执行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值