c++_第9章__多态性与虚函数课件.ppt

c++_第9章__多态性与虚函数课件.ppt

ID:57055441

大小:137.50 KB

页数:31页

时间:2020-07-30

c++_第9章__多态性与虚函数课件.ppt_第1页
c++_第9章__多态性与虚函数课件.ppt_第2页
c++_第9章__多态性与虚函数课件.ppt_第3页
c++_第9章__多态性与虚函数课件.ppt_第4页
c++_第9章__多态性与虚函数课件.ppt_第5页
资源描述:

《c++_第9章__多态性与虚函数课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++面向对象程序设计内蒙古科技大学目录第一章概述第二章C++程序设计初步第三章函数第四章数组和指针第五章类与对象第六章静态成员与友员第七章运算符重载第八章继承与派生第九章多态性与虚函数第十章模板第十一章流类库与输入输出第十二章命名空间与异常处理第九章多态性与虚函数9.1多态性概念9.2虚函数9.3纯虚函数与抽象类9.4综合例子多态,就是发送同一种消息,不同的对象会有不同的动作。多态包含多态重载多态强制多态参数多态静态多态动态多态前期联编编译阶段多态后期联编运行时多态9.1多态性概念9.2虚函数9.2.1用虚函数实现动态多态回顾例8.6voidmain(){CShape*

2、ps[3];CShapes("Red");CPointp1(10,10),p2(100,100),p3(50,50);CLinel(p1,p2,"Green");CCirclec(p3,20,"Black");ps[0]=&s;ps[1]=&l;ps[2]=&c;for(inti=0;i<3;i++)ps[i]->Draw();}程序运行结果为:DrawaShape.ThecolorisRedDrawaShape.ThecolorisGreenDrawaShape.ThecolorisRedBlack虽然父类的指针可以指向子类的对象,但调用的函数Draw()都是父类CSh

3、ape的成员函数为了能通过基类的指针调用派生类的成员函数,可以使用虚函数的方法,即把成员函数Draw()声明为虚函数。例9.1用虚函数实现动态多态#include#includeclassCPoint{private:intX;intY;public:CPoint(intx=0,inty=0){X=x;Y=y;}CPoint(CPoint&p){X=p.X;Y=p.Y;}intGetX(){returnX;}intGetY(){returnY;}};例9.1(续一)classCShape{private:charColor[10

4、];public:CShape(char*c){strcpy(Color,c);}virtualvoidDraw(){cout<<"DrawaShape.Thecoloris"<

5、<<"DrawaLinefrom("<

6、aCircleatcenter("<

7、i]->Draw();}程序运行结果为:DrawaShape.ThecolorisRedDrawaLinefrom(10,10)to(100,100),withcolorGreenDrawaCircleatcenter(50,50)withradius20andcolorBlack9.2虚函数9.2.1用虚函数实现动态多态(续)总结:(1)将成员函数声明为虚函数,在函数原型前加关键字virtual,如果成员函数的定义直接写在类中,也在前面加关键字virtual。(2)将成员函数声明为虚函数后,再将基类指针指向派生类对象,在程序

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

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

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