- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C试验九继承
实验九 继承
1、实验目的
1)掌握继承的实现方法;
2)继承中常见问题的处理方法。
2、实验内容
2.1派生类----单继承
1.分析下面的程序,指出程序运行的结果
#includeiostream.h
class CBase
{public:
void fn1();
};
void CBase::fn1()
{cout调用基类类的函数fn1()\n;
}
class CDerived:public CBase
{
public:
void fn1();
};
void CDerived::fn1()
{cout调用派生类的函数fn1()\n;
}
void main()
{
CDerived d1;
CBase *pb=d1;
CBase pd=d1;
d1.fn1();
pb-fn1();
pd.fn1();
}
运行结果:
2)定义一个图形类,其中有保护类型的成员数据:高度和宽度,一个公有的构造函数。由该图形类建立两个派生类:矩形类和等腰三角形类。在每个派生类中都包含一个函数area(),分别用来计算矩形和等腰三角形的面积。
2.3多继承和虚基类
1)分析下面的程序,指出程序运行的结果:
#includeiostream.h
class CBase1
{
int x;
public:
CBase1()
{x=0;cout调用构造函数CBase1()!\n;}
CBase1(int a)
{x=1;cout调用构造函数CBase1(int)!\n;}
~CBase1(){cout调用析构函数~CBase1()!\n;}
};
class CBase2
{int y;
public:
CBase2()
{y=0;cout调用构造函数CBase2()!\n;}
CBase2(int a)
{y=a;cout调用构造函数CBase2(int)!\n;}
~CBase2(){cout调用析构函数~CBase2()!\n;}
};
class A
{int x;
public:
A(){x=0;cout调用构造函数A()!\n;}
A(int a){x=a;cout调用构造函数A(int)!\n;}
~A(){cout调用析构函数~A()!\n;}
};
class CDerived:public CBase1,virtual public CBase2
{
A a;
public:
CDerived()
{cout调用构造函数CDerived()!\n;}
CDerived(int x,int y,int z):a(x),CBase1(y),CBase2(z)
{cout调用构造函数CDerived(int,int,int)!\n;}
~CDerived(){cout调用析构函数~CDerived()!\n;}
};
void main()
{
CDerived *x=new CDerived;
CDerived y(2,3,4);
delete x;
coutmain()函数结束!\n;
}
实验结果:
2)定义一个人员类cpeople,其属性有(保护类型):姓名、性别、年龄;从中派生出学生类cstudent,添加属性:学号、入学时间和入学成绩;从cpeople类再派生出教师类cteacher,添加属性:职务、部门、工作时间;有cstudent类派生研究生类cgraduate,添加属性:研究方向和导师,由cgraduate和cteacher共同派生出在职研究生类cgradonwork,分别定义其中的构造函数和输出函数。主函数中定义各种类的对象,并完成测试。
1.程序设计如下:#includeiostream.h
#includestring.h
struct person
{
char name[20];
char sex[5];
int age;
double hight;
char address[7];
};
void main()
{
person a;
person b;
strcpy(a.name ,邱畅畅);
a.age=3;
cout姓名:a.nameendl;
cout年龄:a.ageendl;
strcpy(b.name ,林夏香);
b.hight=1.80;
strcpy(b.address,地球上);
cout姓名:b.nameendl;
cout身高:b.hightendl;
cout地址:b.addressendl;
}
2.实验结果:
3、实验结论:
文档评论(0)