c++封装继承多态实例
2023-09-14 09:14:34 时间
#include <iostream>
#include <string>
using namespace std;
class CPU
{
public:
virtual void calculate()=0;
};
class VideoCard
{
public:
virtual void display()=0;
};
class Memory
{
public:
virtual void storage()=0;
};
//组装
class Computer
{
public:
Computer(CPU *cc ,VideoCard *vv,Memory *mm)
{
c=cc;
v=vv;
m=mm;
}
void dowork()
{
c->calculate();
m->storage();
v->display();
}
~Computer()
{
if (c!=NULL){
delete c;
c=NULL;
}
if (m!=NULL){
delete m;
m=NULL;
}
if (v!=NULL){
delete v;
v=NULL;
}
}
private:
CPU *c;
VideoCard *v;
Memory *m;
};
class InterCpu :public CPU
{
void calculate()
{
cout<<"inter的cpu工作了"<<endl;
}
};
class NvidiaVideoCard:public VideoCard
{
public:
void display()
{
cout <<"英伟达的显卡工作了"<<endl;
}
};
class SanXingMemory:public Memory
{
public:
void storage()
{
cout <<"三星内存条工作了"<<endl;
}
};
void test01()
{
CPU *interCPU=new InterCpu;
VideoCard *NvidiaCard=new NvidiaVideoCard;
Memory *OneMemory=new SanXingMemory;
Computer *computer1= new Computer(interCPU,NvidiaCard,OneMemory);
computer1->dowork();
delete computer1;
}
int main()
{
// 创建圆
test01();
system("pause");
return 0;
}
相关文章
- 动态规划C++实现–最长递增子序列
- C++ 中文周刊 第72期
- C和C++关系的相关面试题
- C++基本概念_c语言 c++区别
- 在 Cu002FC++ 中反转字符串的不同方法
- C++基础入门丨7. 指针——一文搞懂指针
- c++的链表-C++实现简单链表
- C/C++ 获取本机IP地址信息
- C/C++ 使用SEH让崩溃进程转存
- C++ 最长公共子序列 Sub Sequence
- C/C++判断素数(质数)为什么到根号x就可以而不是x/2?
- C++设计模式--Visitor模式
- C++类的复合和继承关系(C++继承类和封闭类的关系)
- C++数据类型(强制)转换详解
- 从汇编看c++中引用与指针的使用分析
- C与C++之间相互调用实例方法讲解
- C++采用ring3读取MBR实例
- C++中DeviceIoCteatol的用法实例
- C++判断pe文件实例
- C++封装远程注入类CreateRemoteThreadEx实例
- C++指向函数的指针实例解析
- VC++简单实现关机、重启计算机实例代码
- c++中map的基本用法和嵌套用法实例分析
- C++实现位图排序实例
- C++可变参数的函数与模板实例分析
- C++namespace相关语法实例分析
- C++中重载、重写(覆盖)和隐藏的区别实例分析
- C++编译器无法捕捉到的8种错误实例分析
- c++11新增的便利算法实例分析
- C++二进制翻转实例分析