- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验继承的层次结构及多态性应用
实验4 继承的层次结构
(一)实验类型:验证性
(二)实验类别:专业实验
(三)实验学时数:5学时实验课,其它时间由开放实验室补充
(四)实验目的
1.掌握类的继承层次结构的定义方法;
2.掌握多态性实现的三个条件:继承、覆盖和向上转型;
3.掌握抽象类和接口的定义方法;抽象类派生和实现接口的规则;
4.掌握在继承、聚合和多态作用时对象创建、使用和释放的过程。
(五)实验内容
1)将例5.2的程序片段补充和改写成一个完整、正确的程序,用私有继承方式。在程序中应包括输入数据的函数,在程序运行时输入num, name, sex, age, addr的值,程序输出以上5个数据的值。
提示:例11.2在教材P356页,两各类Student和Student1。私有继承方式。需要写好从键盘输入数据的函数,和向屏幕输出的函数。注意访问属性。
2)将例11.3的程序修改、补充,写成一个完整、正确的程序,用保护继承方式。在程序中应包括输入数据的函数。
提示:例11.3在教材P360页,两各类Student和Student1。保护继承方式。仅需要写好从键盘输入数据的函数。注意访问属性。
3)修改例11.3的程序,改为用公共继承方式。上机调试程序,使之能正确运行并得到正确的结果。对这两种继承方式作比较分析,考虑在什么情况下二者不能互相代替。
有以下程序结构,请分析访问属性。
class A // A为基类
{
public:
void f1( );
int i;
protected:
void f2( );
int j;
private:
int k;
};
class B: public A // B为A的公用派生类
{
public:
void f3( );
protected:
int m;
private:
int n;
};
class C: public B //C为B的公用派生类
{
public:
void f4( );
private:
int p;
};
int main( )
{
A a1; // a1是基类A的对象
B b1; // b1是派生类B的对象
C c1; // c1是派生类C的对象
return 0;
}
问:
(a)在main函数中能否用b1.i, b1.j和b1.k引用派生类B对象b1中基类A的成员?
(b)派生类B中的成员函数能否调用基类A中的成员函数f1和f2?
(c)派生类B中的成员函数能否引用基类A中的数据成员i, j, k?
(d)能否在main函数中用c1.i, c1.j, c1.k, c1.m, c1.n, c1.p引用基类A的成员i, j, k,派生类B的成员m, n,以及派生类C的成员p?
(e)能否在main()函数中用c1.f1( ), c1.f2( ), c1.f3( )和c1.f4( )调用f1, f2, f3, f4成员函数?
(f)派生类C的成员函数f4能否调用基类A中的成员函数f1, f2和派生类中的成员函数f3?
提示:参考教材P358页表11.3和教材P359页表11.4,并且亲自动手在vc编译器上实践一下。
有以下程序结构,请分析所有成员在各类的范围内的访问权限。
class A
{
public:
void f1( );
protected:
void f2( );
private:
int i;
};
class B: public A
{
public:
void f3( );
int k;
private:
int m;
};
class C: protected B
{
public:
void f4( );
protected:
int n;
private:
int p;
};
class D: private C
{
public:
void f5( );
protected:
int q;
private:
int r;
};
int main( )
{
A a1;
B b1;
C c1;
D d1;
// … …
};
提示:这条题改了一下变量,跟书本上有所不同。
(六)实验要求
1.学生在实验过程中自己独立完成设计和编程,1人为1组。
2.完成实验报告:源程序代码,并添加必要的注释。
(七)实验设备
个人计算机(Windows操作系统,Visual C++ 6.0)
(八)实验课承担单位:工程学院
实验5 多态性应用
(一)实验类型:验证性
(二)实验类别:专业实验
(三)实验学时数:5学时实验课,其它时间由开放实验室补充
(四)实验目的
1.掌握类的继承层次结构的定义方法;
2.掌握
原创力文档


文档评论(0)