C++面向对象程序设计 第6章 多态性与虚函数课件.ppt

C++面向对象程序设计 第6章 多态性与虚函数课件.ppt

ID:57055427

大小:212.00 KB

页数:33页

时间:2020-07-30

C++面向对象程序设计 第6章 多态性与虚函数课件.ppt_第1页
C++面向对象程序设计 第6章 多态性与虚函数课件.ppt_第2页
C++面向对象程序设计 第6章 多态性与虚函数课件.ppt_第3页
C++面向对象程序设计 第6章 多态性与虚函数课件.ppt_第4页
C++面向对象程序设计 第6章 多态性与虚函数课件.ppt_第5页
资源描述:

《C++面向对象程序设计 第6章 多态性与虚函数课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、虚函数多态性:调用同一个函数名,可以根据需要但实现不同的功能。多态性是面向对象的程序设计的关键技术。编译时的多态性(函数重载)运行时的多态性(虚函数)多态性运行时的多态性是指在程序执行之前,根据函数名和参数无法确定应该调用哪一个函数,必须在程序的执行过程中,根据具体的执行情况来动态地确定可以将一个派生类对象的地址赋给基类的指针变量。基类对象派生类对象Baseb;Derived;Base*basep;basepbasep=&b;basepbasep=&d;basep只能引用从基类继承来的成员。xShow()xSho

2、w()yShow()basep->Show();basep->Show()基类指针派生类对象基类对象classPoint{floatx,y;public:Point(){}Point(floati,floatj){x=i;y=j;}floatarea(void){return0.0;}};constfloatPi=3.14159;classCircle:publicPoint{//类Point的派生类floatradius;public:Circle(floatr){radius=r;}floatarea(voi

3、d){returnPi*radius*radius;}};voidmain(void){Point*pp;//基类指针,可以将派生类对象的地址赋给基类指针Circlec(5.4321);pp=&c;cout<area()<

4、ow()yShow()basep->Show()Base*basep;basep=&b;basep=&d;basep->Show();即指向派生类新增的成员函数需要将基类中的Show()说明为虚函数若要访问派生类中相同名字的函数,必须将基类中的同名函数定义为虚函数,这样,将不同的派生类对象的地址赋给基类的指针变量后,就可以动态地根据这种赋值语句调用不同类中的函数。classPoint{floatx,y;public:Point(){}Point(floati,floatj){x=i;y=j;}virtualflo

5、atarea(void){return0.0;}};constfloatPi=3.14159;classCircle:publicPoint{//类Point的派生类floatradius;public:Circle(floatr){radius=r;}floatarea(void){returnPi*radius*radius;}};voidmain(void){Point*pp;//基类指针,可以将派生类对象的地址赋给基类指针Circlec(5.4321);pp=&c;cout<area()<

6、dl;//调用虚函数}将area()声明为虚函数,编译器对其进行动态聚束,按照实际对象c调用了Circle中的函数area()。使Point类中的area()与Circle类中的area()有一个统一的接口。输出:92.7011声明为虚函数调用虚函数虚函数再定义虚函数的定义和使用可以在程序运行时通过调用相同的函数名而实现不同功能的函数称为虚函数。定义格式为:virtualFuncName();一旦把基类的成员函数定义为虚函数,由基类所派生出来的所有派生类中,该函数均保持虚函数的特性。

7、在派生类中重新定义基类中的虚函数时,可以不用关键字virtual来修饰这个成员函数。虚函数是用关键字virtual修饰的某基类中的protected或public成员函数。它可以在派生类中重新定义,以形成不同版本。只有在程序的执行过程中,依据指针具体指向哪个类对象,或依据引用哪个类对象,才能确定激活哪一个版本,实现动态聚束。classA{protected:intx;public:A(){x=1000;}virtualvoidprint(){cout<<“x=”<

8、ublicA{inty;public:B(){y=2000;}voidprint(){cout<<“y=”<

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

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

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