当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北大青鸟:《C++》PPT教学课件 第九章 多态

资源类别:文库,文档格式:PPT,文档页数:21,文件大小:261KB,团购合买
一、虚函数 二、纯虚函数 三、抽象类 四、动态绑定 五、虚析构函数
点击下载完整版文档(PPT)

北大青鸟 c 第九章 多态 Ⅴ ersion3.0 CHA

Version 3.0 多态 第九章

回顾 继承 访问控制 继承中的构造函数和析构函数 函数覆盖 北大青鸟

2 回顾 • 继承 • 访问控制 • 继承中的构造函数和析构函数 • 函数覆盖

目标 虚函数 纯虚函数 抽象类 动态绑定 虚析构函数 北大青鸟

3 目标 • 虚函数 • 纯虚函数 • 抽象类 • 动态绑定 • 虚析构函数

虚函数 基类的指针可以指向派生类的对象 但调用的函数却是基类的函数 虚函数可以解决这个问题 北大青鸟

4 虚函数 • 基类的指针可以指向派生类的对象 • 但调用的函数却是基类的函数 • 虚函数可以解决这个问题

示例21 sinclude class shapes public: void draw o //基类中的函数 cout<"绘制基本形状\n"; class Circle public Shap private: int radius; public: void draw o //在派生类中重新定义 cout<<"绘制圆形\n"; 北大青鸟

5 示例 2-1 #include class Shapes { public: void draw() //基类中的函数 { cout << "绘制基本形状\n"; } }; class Circle : public Shapes { private: int radius; public: void draw() //在派生类中重新定义 { cout << "绘制圆形\n"; } };

示例22 class Square public Shapes private int length public: void draw o //在派生类中重新定义 coutdraw)i ptr &s ptr->drawoi 6 北大青鸟

6 示例 2-2 class Square : public Shapes { private: int length; public: void draw() //在派生类中重新定义 { cout draw(); ptr = &s; ptr->draw(); } 调用Shapes 的draw()方 法

虚函数的定义 希望使用raw)函数绘制不同对象 draw()函数必须在基类中被声明为虚函数 virtual void draw o //基类中的虚函数 cout<<"绘制基本形状\n 北大青鸟

7 虚函数的定义 • 希望使用draw( )函数绘制不同对象 • draw( )函数必须在基类中被声明为虚函数 virtual void draw() //基类中的虚函数 { cout << "绘制基本形状\n"; }

虚函数的覆盖 派生类替换基类提供的虚函数实现 编译器确保调用函数的正确版本 北大青鸟

8 虚函数的覆盖 • 派生类替换基类提供的虚函数实现 • 编译器确保调用函数的正确版本

演示 使用虚函数演示 前面的例子 轴2 北大青鸟

9 演示 使用虚函数演示 前面的例子

注意要点 virtua关键字 虚函数必须在声明它的类中有定义 在派生类中重新定义的虚函数必须具有相同 的参数 北大青鸟

10 注意要点 • virtual关键字 • 虚函数必须在声明它的类中有定义 • 在派生类中重新定义的虚函数必须具有相同 的参数

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共21页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有