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

人民邮电出版社:《C及C++程序设计》课程教学资源(PPT课件讲稿)第十八章 虚函数

资源类别:文库,文档格式:PPT,文档页数:8,文件大小:81.5KB,团购合买
18.1 虚函数 18.2 纯虚函数和抽象基类 18.3 编译连接与执行连接
点击下载完整版文档(PPT)

人民邮电出版3 第十八章虚画数

人民邮电出版社 第十八章 虚函数

人民邮电出版3 18.1虚函数 18,2纯虚函数和抽象基类 18.3编译连接与执行连接

人民邮电出版社 18.1 虚函数 18.2 纯虚函数和抽象基类 18.3 编译连接与执行连接

人民邮电出版3 18.1虚函数 18.11虚函数的概念 虚函数是一种在基类中定义为 virtual的函数, 并在一个或多个派生类中再定义的函数。虚函数的 特点是,当使用指向派生类对象基类指针对函数进 行访问时,C++就根据运行时指针所指向的对象去 确定调用哪一个函数。这样,当指针指向不同的对 象时,就执行了虚函数不同的版本。 实现使用虚函数运行时多态性的关键在于:必 须通过基类指针访问这些函数

人民邮电出版社 18.1 虚函数 18.1.1 虚函数的概念 虚函数是一种在基类中定义为virtual的函数, 并在一个或多个派生类中再定义的函数。虚函数的 特点是,当使用指向派生类对象基类指针对函数进 行访问时,C++就根据运行时指针所指向的对象去 确定调用哪一个函数。这样,当指针指向不同的对 象时,就执行了虚函数不同的版本。 实现使用虚函数运行时多态性的关键在于:必 须通过基类指针访问这些函数

人民邮电出版3 在派生类中再定义虚函数是一种特殊的函数重 载。它不同于通常所说的函数重载。这是因为: 第一,虚函数的原型必须匹配。在一般的函数重 载中,函数的返回类型和参数的数目都可以不同;但 重载虚函数时,这些都必须是固定不变的。 第二,虚函数必须是定义成类的成员函数,不能 定义为友元函数,但可以是其它类的友元。 第三,析构函数可以是虚函数,但构造函数不能 是虚函数

人民邮电出版社 在派生类中再定义虚函数是一种特殊的函数重 载。它不同于通常所说的函数重载。这是因为: 第一,虚函数的原型必须匹配。在一般的函数重 载中,函数的返回类型和参数的数目都可以不同;但 重载虚函数时,这些都必须是固定不变的。 第二,虚函数必须是定义成类的成员函数,不能 定义为友元函数,但可以是其它类的友元。 第三,析构函数可以是虚函数,但构造函数不能 是虚函数

人民邮电出版3 18.2为什么要使用虚函数 正是虚函数与派生类的结合,使C+实现了运 行时的多态性。而多态性是面向对象程序设计的重 要特性。因为这个特性,使得能在基类中说明本类 的派生类都共有的函数,并使派生类对它们的特定 功能再进行定义 基类提供了派生类能直接使用的所有元素和派 生类自己实现的函数。由于接口的形式已由基类定 g八义,所以任何派生类都享有同一接口。这种基类定 义派生类的通用接口,派生类各自定义自己的具体 方法,就是常用的“同一接口,多种方法

人民邮电出版社 18.1.2 为什么要使用虚函数 正是虚函数与派生类的结合,使C++实现了运 行时的多态性。而多态性是面向对象程序设计的重 要特性。因为这个特性,使得能在基类中说明本类 的派生类都共有的函数,并使派生类对它们的特定 功能再进行定义。 基类提供了派生类能直接使用的所有元素和派 生类自己实现的函数。由于接口的形式已由基类定 义,所以任何派生类都享有同一接口。这种基类定 义派生类的通用接口,派生类各自定义自己的具体 方法,就是常用的“同一接口,多种方法”

人民邮电出版3 182纯虚函数和抽象基类 18.,2.1纯虚函数 纯虚函数是定义在基类中的一种函数,在基类 定义中只给出函数的原型,它没有任何与该基类有 关的定义。这样的函数就叫做纯虚函数。纯虚函数 的存在,使得任意派生类都必须定义自己的函数版 本。否则,在编译时给出错误信息 纯虚函数定义的一般形式为: virtual type func name(paraneter list)=0 其中,type是纯虚函数的返回类型; func name是所定义的纯虚函数的函数名; paraneter list是纯虚函数的参数

人民邮电出版社 18.2 纯虚函数和抽象基类 18.2.1 纯虚函数 纯虚函数是定义在基类中的一种函数,在基类 定义中只给出函数的原型,它没有任何与该基类有 关的定义。这样的函数就叫做纯虚函数。纯虚函数 的存在,使得任意派生类都必须定义自己的函数版 本。否则,在编译时给出错误信息。 纯虚函数定义的一般形式为: virtual type func_name(paraneter_list)=0; 其中,type是纯虚函数的返回类型; func_name是所定义的纯虚函数的函数名; paraneter_list是纯虚函数的参数

人民邮电出版3 18.,22抽象基类 我们已经知道,含有纯虚函数的基类称为抽象 基类。 抽象基类有一个重要特性:即抽象类不能建立 对象。抽象基类只能用作其它类继承的基类。 例如,对于抽象基类 number,下面建立对象n 的语句是错误的 number n 抽象类可以有指向自己的指针,以支持运行时 婴八的多态性,例如,下面的语句是合法的 number *pn;

人民邮电出版社 18.2.2 抽象基类 我们已经知道,含有纯虚函数的基类称为抽象 基类。 抽象基类有一个重要特性:即抽象类不能建立 对象。抽象基类只能用作其它类继承的基类。 例如,对于抽象基类number,下面建立对象n 的语句是错误的: number n; 抽象类可以有指向自己的指针,以支持运行时 的多态性,例如,下面的语句是合法的: number *pn;

人民邮电出版3 18.3编译连接与执行连接 在面向对象程序设计语言的讨论中,常用到 两个术语:先连接( early binding)和后连接 ( late binding)。先连接指编译时进行连接,后 连接指运行程序时才进行连接,也称执行连接

人民邮电出版社 18.3 编译连接与执行连接 在面向对象程序设计语言的讨论中,常用到 两个术语:先连接(early binding)和后连接 (late binding)。先连接指编译时进行连接,后 连接指运行程序时才进行连接,也称执行连接

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

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

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