C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++6
18页1、第六章 运行时的多态性和抽象类,运行时多态性概念 滞后联编和虚函数 利用虚函数设计具有运行多态性程序的方法,多态性,定义 相同对象收到相同消息,不同对象收到相同消息时,产生不同的处理结果。 分类 重载多态性:同一个类中成员函数重载 继承多态性:派生类对基类的覆盖和不覆盖实现 运行时多态性:对一个类层次来说,动态确定的类层次中的对象不同,则对象调用成员函数不同。 参数多态性:用参数方法决定一个类的数据类型,模板实现。,滞后联编和运行时多态性,联编就是将一个标识符名和一个存储地址联系在一起。 早期联编是在源程序编译时进行联编。 滞后联编就是在程序运行时进行联编。在运行时才根据当时具体的取值确定对象所属类层次中的某个类的编译方法。 运行时的多态性是指系统在运行时才具体确定对象所属类层次中的某个类,从而确定外部程序所发消息的匹配对象。,滞后联编和运行时多态性,C+语言既兼容早期联编又支持滞后联编的编译方法。 C+语言是在C语言基础上的扩充和发展。 滞后联编的语言的缺点是程序运行速度慢。 C+语言采用折中方法: 凡是虚函数(前边标有关键字virtual的成员函数),采用滞后联编的方式编译; 其它
2、成员函数,采用早期联编的方式编译 一个成员函数是否采用滞后联编由程序设计人员决定,虚函数定义,声明虚函数的语句格式为: virtual ; 只有在类层次中才存在虚函数。 一般在基类中按如上格式声明某成员函数为虚函数,在派生类中名字、参数个数、参数类型和返回类型都相同的成员函数自动视作虚函数。 派生类中声明的虚函数,其成员函数名、参数个数、参数类型以及返回值类型要求和基类中声明的虚函数完全一样 要利用赋值兼容,要求派生类必须从基类公有派生。,虚函数运行时多态性,虚函数实现运行时多态性的设计方法: 设计一个类层次,并在类层次中定义一个或一个以上的虚函数。 在外部程序中定义基类的指针对象。 程序中既可以把基类对象的地址(或指针值)赋给基类的指针对象,也可以把派生类对象的地址(或指针值)赋给基类的指针对象。 当外部程序发送的消息是虚函数时,若此时基类指针对象指向基类对象时,系统就调用基类中的成员函数;若此时基类指针对象指向派生类对象时,系统就调用派生类中的成员函数。 如果没有定义虚函数,即使指针指向派生类,调用的仍然是基类中的成员函数。,例6.1 虚函数和派生类,#include class
3、A public: A(void) virtual void vf1(void)const / 虚函数 cout “基类的vf1()函数“ endl; void f2(void)const /成员函数 cout “基类的f2()函数“ endl; ; class AA: public A public: AA(void),void vf1(void)const /虚函数 cout vf1(); /调用基类的vf1()函数 pa-f2(); /调用基类的f2()函数 AA myAA; pa = /调用派生类的vf1()函数 ,程序运行结果: 基类的vf1()函数 基类的f2()函数 派生类的vf1()函数 派生类的f2()函数,虚析构函数,引入原因 如果外部程序定义了动态对象,当外部程序结束时,要使用delete运算符删除动态对象。如果外部对象利用赋值兼容规则,将动态申请的派生类对象地址赋给了基类对象指针,则系统自动调用的是基类的析构函数。有可能引起内存泄漏(即只释放了派生类对象的基类子对象动态内存空间,而派生类对象的其它动态内存空间没有被释放)问题。 解决:虚析构函数可以解决这样的内存
《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++6》由会员E****分享,可在线阅读,更多相关《C++面向对象程序设计 教学课件 ppt 作者 朱战立 张玉祥 C++6》请在金锄头文库上搜索。
逍遥游复习 知识点整理
近现代法德关系史 高三展示课3稿
当代大学生人生信仰及追求的调查研究
长相思 纳兰性德-ppt课件
课件:危机意识 一
英语ppt演讲关于阿甘正传
发达国家基础教育改革的动向与趋势 修改版
中国民间美术 课件.ppt
生物质发电技术与系统 课程ppt 第1章 生物质发电技术现状及发展趋势 2学时 -----2016
现代信号处理思考题 含答案
执业药师继续教育 抑郁症的药物治疗 100分
小学生的成长档案模板不用修改 万能型
增订六版 现代汉语 上册 第二章文字 思考与练习答案
国家财政ppt课件
加拿大英语介绍
六年级统计图的选择课件
中学生成长档案ppt
中国现代文学史期末复习整理
lohi和hihilo训练对女子赛艇运动员运动能力影响的比较研究
风雨贾平凹阅读答案
2024-04-11 25页
2024-04-11 37页
2024-04-11 28页
2024-04-11 31页
2024-04-11 36页
2024-04-11 29页
2024-04-11 22页
2024-04-11 27页
2024-04-11 34页
2024-04-11 32页