C++程序设计 冯博琴 C++第9章

C++程序设计 冯博琴 C++第9章

ID:40238216

大小:540.50 KB

页数:61页

时间:2019-07-28

C++程序设计 冯博琴 C++第9章_第1页
C++程序设计 冯博琴 C++第9章_第2页
C++程序设计 冯博琴 C++第9章_第3页
C++程序设计 冯博琴 C++第9章_第4页
C++程序设计 冯博琴 C++第9章_第5页
资源描述:

《C++程序设计 冯博琴 C++第9章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章多态性中国铁道出版社19.1多态性的概念多态性用相同的名字定义不同的函数,这些函数执行不同的过程,也就是说,同一名称拥有多种不同的功能和含义。静态多态性在编译时就确定同名操作的具体操作对象,也称为编译时的多态性,通过函数重载和模板实现动态多态性在程序运行过程中动态地确定操作的具体对象,也称为运行时的多态性,通过虚函数来实现确定具体操作对象的过程称为联编或绑定,联编也分为静态联编(静态绑定)和动态联编(动态绑定)。29.2虚函数9.2.1虚函数的定义虚函数在基类中进行定义,某个成员函数被声明为虚函数后,这个虚函数就可以在派生类中重新定义,在派生类中可能有不同的实现。定义虚函数的格式:vi

2、rtual函数类型函数名(形参表){函数体}3【例9-1】使用指针变量访问虚函数#includeusingnamespacestd;classA{public:virtualvoidfun(){cout<<"BaseA"<

3、=&a1;p->fun();p=&b1;p->fun();p=&b2;p->fun();}6在一个派生类中重新定义基类的虚函数是函数重载的一种特殊形式,重载虚函数时,要求派生类中重载的函数其原型即函数名、返回类型、参数类型、参数个数及顺序与基类中函数的原型完全相同。79.2.2多继承中的虚函数【例9-2】在多继承中使用虚函数。#includeusingnamespacestd;classA1{public:virtualvoidfun()//函数fun()为虚函数{cout<<"BaseA1"<

4、un()//函数fun()为一般函数{cout<<"BaseA2"<fun();p1=&b;p1->fun();p2=&a2;p2->fun();p2=&b;p2->fun();}109.2.3虚函数的传递性多层继承中,在基类中定义了虚函数,则在其派生类中可以重新定义虚函数,如果这个派生类再派生新的类,则在新的派生类多中仍然可以重新定义

5、虚函数,因此,虚函数的特性是可以传递的。11【例9-3】多层继承中虚函数的传递性#includeusingnamespacestd;classA{public:virtualvoidfun()//函数fun()为虚函数{cout<<"ClassA"<

6、9-3】(续)voidmain(){Aa,*p;Bb,*p1;Cc;cout<<"使用指针变量p"<fun();p=&b;p->fun();p=&c;p->fun();cout<<"使用指针变量p1"<fun();p1=&c;p1->fun();}14【例9-4】多条继承路径中虚函数的传递性#includeusingnamespacestd;classA{public:virtualvoidfun()//函数fun()为虚函数{cout<<"BaseA"<

7、ic:voidfun()//函数fun()也为虚函数{cout<<"BaseB1"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。