欢迎来到天天文库
浏览记录
ID:50041852
大小:106.50 KB
页数:17页
时间:2020-03-08
《C++语言程序设计教程 第2版 普通高等教育十一五 国家级规划教材 教学课件 作者 吕凤翥 王树彬_ 第9章 多态性和虚函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章多态性和虚函数9.1运算符重载9.2静态联编和动态联编9.3纯虚函数和抽象类9.1运算符重载9.1.1运算符重载的概念1.哪些运算符可以重载大多数运算符都可以重载,只有少数运算符不能重载。①操作数个数不变;②优先级不变;③结合性不变;④语义不变。2.运算符重载遵循的“4个不变”原则重载运算符的选择主要是根据运算符的操作数的个数、类型及顺序的不同来选择的。3.重载运算符在程序中的选择①运算符重载是通过函数定义来实现的,在定义运算符重载的函数时不能设置函数的默认值。②重载运算符的定义方法通常采用成员函数方法或友元
2、函数方法。③通常不随意定义重载运算符,而尽量使得重载运算符的功能与其原来用于标准数据类型的功能相似。④用于类对象的运算符一般都要重载。4.使用运算符重载应注意的问题9.1.2运算符重载的两种方法1.成员函数方法运算符重载采用成员函数方法的形式如下:<类型>operator<运算符>(<参数表>){<函数体>}见书中例9.1。重载运算符采用友元函数的形式格式如下:friend<类型>operator<运算符>(<参数表>){<函数体>}见书中例9.2。2.友元函数方法9.1.3运算符重载举例1.赋值运算符重载见书中例
3、9.3。2.下标运算符重载见书中例9.4。3.插入符和提取符的再重载见书中例9.5。9.2静态联编和动态联编“联编”的含义是指对于相同名字的若干个函数的选择问题题。在C++语言中,可分为静态联编和动态联编两种。静态联编是在编译时进行的,又称早期联编。动态联编是在运行阶段进行的,又称滞后联编。见书中例9.6,例9.7。9.2.1联编的概念1.虚函数的说明方法9.2.2虚函数虚函数是非静态成员函数。说明虚函数的格式如下:virtual<类型><成员函数名>(<参数表>)虚函数是实现动态联编的关键。虚函数可以通过基类指针
4、或引用访问基类和派生类中被说明为虚函数的同名函数。2.虚函数的作用虚函数具有继承性。见书中例9.8。3.虚函数的特征9.2.2动态联编1.使用对象指针或对象引用调用虚函数时,可以实现动态联编见书中例9.9。2.使用成员函数调用虚函数可以实现动态联编见书中例9.10。析构函数可以说明为虚函数,其方法也是在析构函数头前边加关键字virtual。虚析构函数的作用在于系统将采用动态联编调用虚析构函数。见书中例9.11。9.2.3虚析构函数9.3纯虚函数和抽象类9.3.1纯虚函数纯虚函数是一种特殊的虚函数,它是一种没有具体实
5、现的虚函数。纯虚函数格式如下:virtual<类型><函数名>(<参数表>)=0;见书中例9.12。9.3.2抽象类1.抽象类的概念凡是包含有一个或多个纯虚函数的类称为抽象类。抽象类不能定义对象,,但是它可以定义对象指针或对象引用。抽象类不同于普通的具体类,它是更高级的抽象。抽象类在类的层次结构中,作为顶层或最上面几层的,由它作为一个类族的公共接口。抽象类是一种公共接口,它是下面诸多的派生类的集中归宿。2.抽象类的作用作业题和上机练习题
此文档下载收益归作者所有