设计一个计算机系统类,由软件和硬件组合而来
使用c++的继承和组合
思路
- 首先定义一个硬件和软件类,包含各自的数据成员和成员函数
- 采用多继承实现计算机系统类
- 采用组合实现计算机系统
- 最后 在main()中进行测试
#include <iostream>
#include <string.h>
using namespace std;
class CHard
{
public :
CHard(char *bn)
{
strcpy(bodyname, bn);
}
CHard(CHard &h)
{
strcpy(bodyname, h.bodyname);
}
void Disp()
{
cout<<"bodyname :"<<bodyname<<endl;
}
protected:
char bodyname[24];
};
class CSoft
{
public :
CSoft(char *s, char *l)
{
strcpy(os, s);
strcpy(lang, l);
}
CSoft(CSoft &h)
{
strcpy(os, h.os);
strcpy(lang, h.lang);
}
void Disp()
{
cout<<"lang :"<<lang<<endl;
cout<<"os :"<<os<<endl;
}
protected:
char os[24];
char lang[16];
};
class CSystem:public CHard, public CSoft
{
public :
CSystem(char *ow, char *bn, char *s, char *l):CHard(bn),CSoft(s,l)
{
strcpy(owner, ow);
}
CSystem(char *ow, CHard h, CSoft s):CHard(h),CSoft(s)
{
strcpy(owner, ow);
}
void Disp();
private:
char owner[16];
};
void CSystem::Disp()
{
cout<<"Owner :"<<owner<<endl;
CHard::Disp();
CSoft::Disp();
}
class CSystem2
{
public :
CSystem2(char *ow, CSoft &soft, CHard &hard);
void Disp();
private:
char owner[16];
CHard h;
CSoft s;
};
void CSystem2::Disp()
{
cout<<"Owner :"<<owner<<endl;
h.Disp();
s.Disp();
cout<<ends;
}
CSystem2::CSystem2(char *ow,CSoft& soft, CHard& hard):h(hard),s(soft)
{
strcpy(owner, ow);
}
int main()
{
CSystem sys("zhangsan", "legend", "windows 7", "C++ language");
sys.Disp();
cout<<"组合方式 :"<<endl;
CHard h("IBM");
CSoft s("Linux", "Java");
CSystem2 sys2("lisi",s,h);
sys2.Disp();
return 0;
}