C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.

Slides:



Advertisements
Similar presentations
認識食品標示 東吳大學衛生保健組製作.
Advertisements

第八章 互换的运用.
颞下颌关节常见病.
致理科技大學保險金融管理系 實習月開幕暨頒獎典禮
結腸直腸腫瘤的認知.
經歷復活的愛 約翰福音廿一1-23.
第 2 章 初探 C++.
郭詩韻老師 (浸信會呂明才小學音樂科科主任)
2. 戰後的經濟重建與復興 A. 經濟重建的步驟與措施 1.
好好學習 標點符號 (一) 保良局朱正賢小學上午校.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
第八章 类和对象.
4. 聯合國在解決國際衝突中扮演的角色 C. 聯合國解決國際衝突的個案研究.
新陸書局股份有限公司 發行 第十九章 稅捐稽徵法 稅務法規-理論與應用 楊葉承、宋秀玲編著 稅捐稽徵程序.
民法第四章:權利主體 法人 楊智傑.
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
第3章 继承和派生.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
Object-Oriented Programming in C++ 第一章 C++的初步知识
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
C/C++/Java 哪些值不是头等程序对象
四年級 中 文 科.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
六、函数 教学目标: 函数的概念、定义、调用和返回 带自定义函数的程序设计 递推算法 递归思想及算法实现 函数的参数传递方式 C语言程序设计.
C++面向对象程序设计 谭浩强编著 授课教师:姬广永 QQ: 学习网站:
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
第12讲 多继承与虚基类 多继承 虚基类.
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
聖誕禮物 歌羅西書 2:6-7.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C++大学基础教程 第10章 运算符重载 北京科技大学 2019/5/7 北京科技大学.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
面向对象技术 练习 ffh.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
#include <iostream.h>
第四章 函数 丘志杰 电子科技大学 计算机学院 软件学院.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
依撒意亞先知書 第一依撒意亞 公元前 740 – 700 (1 – 39 章) 天主是宇宙主宰,揀選以民立約,可惜他們犯罪遭
谭浩强编著 C++面向对象程序设计 授课教师:姬广永 学习网站:
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第三章 高级函数特性.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
經文 : 創世紀一章1~2,26~28 創世紀二章7,三章6~9 主講 : 周淑慧牧師
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
成本會計 在決策中的功能 第四課 1.
隨機函數.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计

“ 目录 C++语言程序设计 基本知识 编程技能 刨根问底 多态的概念 运行时多态 模板 重载与静态联编 覆盖与静态联编 虚函数与动态联编 函数模板 运行时多态 C++语言程序设计

刨根问底 c C++语言程序设计

函数重载:编译器根据函数的参数能够确定每次调用哪个函数 (I) 重载与静态联编 函数重载:编译器根据函数的参数能够确定每次调用哪个函数 int add(int a){ return a+10;} int add(int a,int b){ return a+b;} int main(){ int x=1,y=2; add(x); add(x,y); return 0; } 经过编译器处理之后,同名的函数变成了不同地址的子程序 对同名函数的调用变成了对不同地址子程序的调用 这个转变过程是由编译器完成的 编译器分辨出了同名函数的不同之处。 属于静态联编 C++语言程序设计

(II) 覆盖与静态联编 函数覆盖: 被派生类覆盖的函数是否是虚函数: 只出现在继承树中 在派生类中定义和基类中同名的成员函数,是对基类进行改造,为派生类增加新行为的一种常用的方法。 通过不同的派生类的对象(对象指针或者对象引用),调用这些同名的成员函数,实现不同的操作,也是多态性的一种表现。 被派生类覆盖的函数是否是虚函数: 是虚函数——动态联编 不是虚函数——静态联编 C++语言程序设计

(II) 覆盖与静态联编 class B { public: f(){…}}; class P: public B { public: f(){…}}; class Q: public B { public: f(){…}}; main () { P p; Q q; B * pb; p.f(); q.f(); pb=&p; pb->f(); pb=&q; } class B { public: virtual f(){…}}; C++语言程序设计

(III) 虚函数与动态联编 分析程序是否有错: C++语言程序设计 #include <iostream> using namespace std; class B { public: virtual void vf1(){cout<<"B::vf1被调用"<<endl;} virtual void vf2(){cout<<"B::vf2被调用"<<endl;} void f(){cout<<"B::f被调用"<<endl;} }; class D:public B { virtual void vf1(){cout<<"D::vf1被调用"<<endl;} void vf2(int i){cout<<i<<endl;} void f(){cout<<"D::f被调用"<<endl;} int main() { D d; B *bp=&d; bp->vf1(); bp->vf2(); bp->vf2(10); bp->f(); return 0; } 有编译错误 C++语言程序设计

(III) 虚函数与动态联编 动态联编的缺点: 虚函数在程序执行过程中来判断执行哪个函数,会引入较大的开销。 可以说,C ++ 程序的执行效率低于C程序主要体现在C ++ 引入了虚函数和虚基类。 如果极度关注C ++ 程序的性能(例如编写工业用实时控制程序),那么在优化C ++ 程序的同时,应尽量避免使用虚函数和虚基类。 C++语言程序设计