C及C++程序设计 教学课件 ppt 作者 张富 第十八章
-
资源ID:89343878
资源大小:81.50KB
全文页数:8页
- 资源格式: PPT
下载积分:10金贝
快捷下载
账号登录下载
微信登录下载
微信扫一扫登录
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
|
下载须知 | 常见问题汇总
|
C及C++程序设计 教学课件 ppt 作者 张富 第十八章
第十八章 虚函数,18.1 虚函数 18.2 纯虚函数和抽象基类 18.3 编译连接与执行连接,18.1 虚函数 18.1.1 虚函数的概念 虚函数是一种在基类中定义为virtual的函数,并在一个或多个派生类中再定义的函数。虚函数的特点是,当使用指向派生类对象基类指针对函数进行访问时,+就根据运行时指针所指向的对象去确定调用哪一个函数。这样,当指针指向不同的对象时,就执行了虚函数不同的版本。 实现使用虚函数运行时多态性的关键在于:必须通过基类指针访问这些函数。,在派生类中再定义虚函数是一种特殊的函数重载。它不同于通常所说的函数重载。这是因为: 第一,虚函数的原型必须匹配。在一般的函数重载中,函数的返回类型和参数的数目都可以不同;但重载虚函数时,这些都必须是固定不变的。 第二,虚函数必须是定义成类的成员函数,不能定义为友元函数,但可以是其它类的友元。 第三,析构函数可以是虚函数,但构造函数不能是虚函数。,18.1.2 为什么要使用虚函数 正是虚函数与派生类的结合,使+实现了运行时的多态性。而多态性是面向对象程序设计的重要特性。因为这个特性,使得能在基类中说明本类的派生类都共有的函数,并使派生类对它们的特定功能再进行定义。 基类提供了派生类能直接使用的所有元素和派生类自己实现的函数。由于接口的形式已由基类定义,所以任何派生类都享有同一接口。这种基类定义派生类的通用接口,派生类各自定义自己的具体方法,就是常用的“同一接口,多种方法”。,18.2 纯虚函数和抽象基类 18.2.1 纯虚函数 纯虚函数是定义在基类中的一种函数,在基类定义中只给出函数的原型,它没有任何与该基类有关的定义。这样的函数就叫做纯虚函数。纯虚函数的存在,使得任意派生类都必须定义自己的函数版本。否则,在编译时给出错误信息。 纯虚函数定义的一般形式为: virtual type func_name(paraneter_list)=0; 其中,type是纯虚函数的返回类型; func_name是所定义的纯虚函数的函数名; paraneter_list是纯虚函数的参数。,18.2.2 抽象基类 我们已经知道,含有纯虚函数的基类称为抽象基类。 抽象基类有一个重要特性:即抽象类不能建立对象。抽象基类只能用作其它类继承的基类。 例如,对于抽象基类number,下面建立对象n的语句是错误的: number n; 抽象类可以有指向自己的指针,以支持运行时的多态性,例如,下面的语句是合法的: number *pn;,18.3 编译连接与执行连接,在面向对象程序设计语言的讨论中,常用到两个术语:先连接(early binding)和后连接(late binding)。先连接指编译时进行连接,后连接指运行程序时才进行连接,也称执行连接。,