1 / 50
文档名称:

面向对象程序设计语言C++第07章 虚函数和多态性公开课一等奖课件赛课获奖课件.ppt

格式:ppt   大小:497KB   页数:50页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面向对象程序设计语言C++第07章 虚函数和多态性公开课一等奖课件赛课获奖课件.ppt

上传人:业精于勤 2025/5/12 文件大小:497 KB

下载得到文件列表

面向对象程序设计语言C++第07章 虚函数和多态性公开课一等奖课件赛课获奖课件.ppt

相关文档

文档介绍

文档介绍:该【面向对象程序设计语言C++第07章 虚函数和多态性公开课一等奖课件赛课获奖课件 】是由【业精于勤】上传分享,文档一共【50】页,该文档可以免费在线阅读,需要了解更多关于【面向对象程序设计语言C++第07章 虚函数和多态性公开课一等奖课件赛课获奖课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。面向对象程序设计语言C++
电子科技大学计算机学院
1
第七章 虚函数和多态性
C++使用多态性实现同一种消息,不一样接受者采用不一样的响应方式的这种现象。
多态性是一种事务有多种形态。
在面向对象语言中,一般这样描述多态:向不一样对象发送同一种消息,不一样的对象在接受时会产生不一样的行为。也就是说,每个对象可以用自已的方式去响应共同的消息。
2
第七章 虚函数和多态性
C++语言的多态性有两种类型:
静态多态性和动态多态性。
函数重载和运算符重载都是静态的多态性。
在程序编译时系统就可以决定调用哪个函数,因此静态多态性又称为编译时的多态性。动态多态性时程序运行过程中才动态确实定操作所针对的对象。它又称为运行时的多态性。动态多态性是通过虚函数实现的。
3
第七章 虚函数和多态性
虚函数

对于一般组员函数的重载,可体现为下面的方式:
(1)在同一种类中重载;
(2)在不一样类中重载;
(3)基类的组员函数在派生类中重载;
因此,重载函数的访问是在编译时辨别的,这种程序运行之前就可以在多种函数中确定目前访问的函数的措施称为静态多态性。
4
第七章 虚函数和多态性
虚函数

有如下三种辨别措施:
据参数的特征加以辨别,例如:
Show(int, char) 与 Show(char * , float)
使用”::”加以辨别,例如:
Circle :: Show 有别于 Point :: Show
根据类对象加以辨别
() 调用 Circle :: Show()
5
第七章 虚函数和多态性
虚函数

子类可以重载父类的组员:
class A {
public:
void fun() {cout<<"In A"<<endl;} };
class B : public A {
public:
void fun() {cout<<"In B"<<endl;} };
6
第七章 虚函数和多态性
虚函数

C Cobj;
(); //调用C::fun()
::fun(); //调用B::fun()
::fun(); //调用A::fun()
A & Aref=Cobj;
(); //调用A::fun() ,编译器通过类型确定调用哪个版本
B & Bref=Cobj;
(); //调用B::fun()
::fun(); //调用A::fun()
A * Apointer=&Cobj;
Apointer->fun(); //调用A::fun()
7
第七章 虚函数和多态性
虚函数

(1)可以用指向基类的指针指向其公有派生类的对象
基类指针访问的是派生对象的拥有的基类部分,
派生类自身的部分不能被基类指针访问。
指向派生类的指针指向基类的对象是不对的的
(2)但愿用基类指针访问其公有派生类的特定组员,
必须将基类指针用显示类型转换为派生类指针。
8
第七章 虚函数和多态性
虚函数
虚函数与多态性
1.虚函数的概念  
一种指向基类的指针可用来指向从基类公有派生的任何对象。
是 C++ 实现运行时多态性的关键途径。
假如有多种或者多层派生类,通过一种基类指针可以访问所有派生类对象的组员函数,这样就可以实现一种接口,多种实现的访问了。
9
第七章 虚函数和多态性
虚函数
虚函数与多态性
class Base {
public:
Base(int a) {x=a;}
void who()
{ cout << "base "<<x<<"\n";}
protected:
int x;
};
10
class First_d: public Base {
public:
First_d (int a ):Base(a){ }
void who() { cout << "First derivation " <<x<<"\n";} };
class Sec_d :public Base{
public:
Sec_d (int a):Base(a) { }
void who() { cout << "Second derivation " <<x<<"\n";}
};

最近更新

2025年县乡教师选调进城考试《教育法律法规》.. 48页

苏教版小学四年级语文上册第二单元复习课件公.. 21页

2025年咨询工程师之工程项目组织与管理题库及.. 166页

2025年咨询工程师之工程项目组织与管理题库完.. 165页

2025年咨询工程师之工程项目组织与管理题库附.. 164页

生物人教版中考复习专题一-选择题公开课一等奖.. 126页

消费函数介绍以及近期发展述评公开课一等奖课.. 15页

2025年国家电网招聘之电工类题库含答案【黄金.. 78页

2025年国家电网招聘之电工类题库附参考答案(.. 79页

语文ⅳ人教新资料第3课(哈姆莱特)资料公开课一.. 124页

2025年宪法知识题库及答案(典优) 42页

2025年宪法知识题库必考 43页

2025年心理咨询师考试题库500道及参考答案【b.. 128页

沪科版5.4密度知识的应用公开课一等奖课件赛课.. 39页

2025年心理咨询师考试题库500道附参考答案【完.. 127页

2025年心理咨询师考试题库500道(名师推荐) 127页

2025年政工职称考试题库含答案【培优b卷】 29页

苏教版六年级下册圆柱的表面积(练习)公开课一.. 55页

苏教版三年级上册数学期末复习知识点公开课一.. 18页

2025年校园招聘考试笔试试题库及完整答案(全.. 248页

2025年校园招聘考试笔试试题库含答案(黄金题.. 241页

2025年校园招聘考试笔试试题库附答案【名师推.. 252页

2025年法律常识题库含答案(最新) 86页

2025年法律职业资格之法律职业客观题一题库70.. 248页

2025年法律职业资格之法律职业客观题一题库70.. 244页

2025年注册城乡规划师之城乡规划原理题库及参.. 152页

2025年注册城乡规划师之城乡规划原理题库含答.. 151页

2025年注册城乡规划师题库500道【能力提升】 143页

2025美国心肺复苏指南--关键问题和重大更新 5页

平面直角坐标系中三角形面积求法例题及对应练.. 3页