第6章A多态性与虚函数.pptVIP

  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文档。上传文档
查看更多
基类与派生类的关系   任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此,基类和派生类是相对而言的。   基类与派生类之间的关系可以有如下几种描述:    1. 派生类是基类的具体化    类的层次通常反映了客观世界中某种真实的模型。在这种情况下,不难看出:基类是对若干个派生类的抽象,而派生类是基类的具体化。基类抽取了它的派生类的公共特征,而派生类通过增加行为将抽象类变为某种有用的类型。    2. 派生类是基类定义的延续    先定义一个抽象基类,该基类中有些操作并未实现。然后定义非抽象的派生类,实现抽象基类中定义的操作。例如,虚函数就属此类情况。这时,派生类是抽象的基类的实现,即可看成是基类定义的延续。这也是派生类的一种常用方法。    3. 派生类是基类的组合    在多继承时,一个派生类有多于一个的基类,这时派生类将是所有基类行为的组合。 练习: 实现运行时的多态性要使用__D___。 A)构造函数 B)析构函数 C)重载函数 D)虚函数 关于函数的描述中,___C___是正确的。 A)派生类的虚函数与基类的虚函数具有不同的参数个数和类型 B)基类中说明了虚函数后,派生类中其对应的函数一定要说明为虚函数 C)虚函数是一个成员函数 D)虚函数是一个static类型的成员函数 关于动态联编的下列叙述中,_D_是错误的。 A)动态联编是以虚函数为基础的 B)动态联编调用虚函数操作是指向对象的指针或引用 C)动态联编是在运行时确定所调用的函数代码的 D)动态联编是在编译时确定操作函数的 练习: 用于类中虚成员函数说明的关键字(? ?A ) A.virtual???B.public?? C.protected?? D.private 编译时的多态性通常使用(B )获得。 A.继承???? B.虚函数?? C.重载函数??? D.析构函数 若要强制C++对虚函数的调用使用静态联编,则在调用中对该函数使用( A) A.成员名限定 B.指针?? C.引用??? D.VIRTUAL关键字 C++有(????B???? )种联编。 A.1 B.2 C.3 D.4 虚函数必须是类的(?????A?? ) A.成员函数 B.友元函数 C.构造函数 D.析构函数 练习: 不能说明为虚函数的是(??? ????B?? ) A.析构函数 B.构造函数 C.类的成员函数 D.以上都正确 不同的对象可以调用相同名称的函数,并可导致完全不同的行为的现象称为(????A? ?? ) A.多态性 B.抽象 C.继承 D.封装 若析构函数是虚函数,则delete对析构函数的调用采用(???B ? ) A.静态联编 B.动态联编 C.重载函数 D.多重函数 练习: 若派生类中没有对基类的虚函数进行重定义,则它继承基类中的(??????C ?????? ) A.访问权限 B.保护成员 C.虚函数 D.成员函数 多态调用指(???? C????? ) A.以任何方式调用一个虚函数 B.以任何方式调用一个纯虚函数 C.借助于指向对象的基类指针或引用调用一个虚函数 D.借助于指向对象的基类指针或引用调用一个纯虚函数 动态联编所支持的多态性称为(??? ?D??? ) A.虚函数 B.继承 C.编译时的多态性 D.运行时的多态性 * * * * 多态性的概念 虚函数 纯虚函数和抽象类 多态性——指的是一个名称可以具有多种语义。 利用多态性,用户向不同的对象发送同一个消息,不同的对象根据所接收到的消息做出不同的动作(即操作或方法) 作用:增加灵活性,减少冗余信息,提高软件的可重用性和可扩充性 调用函数 多态性也分为静态多态性和动态多态性两种。 静态多态性——是指定义在一个类或一个函数中的同名函数,它们可根据参数表(类型及个数)区别语义,在程序编译时系统就能决定调用哪个函数。又称为编译时的多态性。 动态多态性——是指定义在一个类层次的不同类中的函数,它们一般具有相同的参数表,因而要根据指针指向的对象所在类来区别语义,在程序运行过程中才能动态的确定操作所针对的对象。又称运行时的多态性。 虚函数 函数和运算符的重载 引入: 例6.2:基类与派生类中有同名函数 #include iostream #include string using namespace std; class Student {public: Student(int,string,float); void display(); Student::Student(int n,string nam,float s) {num=n;name=nam;score=s;} void Student::disp

文档评论(0)

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

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

1亿VIP精品文档

相关文档