实验继承的层次结构及多态性应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

wuailuo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档