第八章多态性

上传人:痛*** 文档编号:237154382 上传时间:2023-12-10 格式:PPT 页数:29 大小:346.53KB
返回 下载 相关 举报
第八章多态性_第1页
第1页 / 共29页
第八章多态性_第2页
第2页 / 共29页
第八章多态性_第3页
第3页 / 共29页
点击查看更多>>
资源描述
第八章:多态性罗月童罗月童合肥工业大学,合肥工业大学,VCC研究室研究室导论Y多态性(多态性(polymorphism):在程序中,同一符号或名字在不同情况下具有不同解释的现象称为多态性多态性;YC+中实现多态性多态性的手段:v函数重载;v函数重定义变色眼镜猫的瞳孔人的性格虚函数祖先类指针指向后代类对象目 录Y8.1 导 论Y8.2 函数重载函数重载Y8.3 运算符重载Y8.4 虚函数Y8.5 抽象类Y8.6 多态性再讨论8.2 函数重载(overloading)Y注意事项:v返回值类型不能用于区分重载v不同参数传递方式不能用于区分重载v由typedef定义的类型不能用于区分重载Y函数重载的二义性:v隐式类型转换引起的二义性v使用缺省参数引起的二义性目 录Y8.1 导 论Y8.2 函数重载Y8.3 运算符重载运算符重载Y8.4 虚函数Y8.5 抽象类Y8.6 多态性再讨论8.3 运算符重载Y8.3.1 导论Y8.3.2 运算符函数Y8.3.3 运算符重载8.3.1 导 论Y设计一个类表示复数复数,并实现加加、减减法运算COMPLEX A,B,C;C=A.add(B);8.3.1 导 论运算符重载8.3.2 运算符函数Y运算符、函数都是接受参数接受参数、返回结果返回结果;Y运算符被视为函数的一种运算符函数;vA+B-+(A,B)Y注意:注意:vC+仅允许重载一元、二元运算符;vC+不允许重载三元运算符;8.3.2 运算符重载友元运算符重载一个问题类成员运算符重载为什么只有为什么只有一个参数?一个参数?运算符重载的其他规则Y重载运算符无法改变任何运算符的优先级和结合性质Y重载运算符不可改变操作数的个数Y重载运算符不可使用缺省参数Y除了赋值运算符,重载运算符可由派生类继承;Y运算符=、()、-可作为类成员运算符,不可作为友元运算符;Y提议提议:保存运算符的含义,不要滥用!重载赋值运算符“=”重载赋值运算符“=”目 录Y8.1 导 论Y8.2 函数重载Y8.3 运算符重载Y8.4 虚函数虚函数Y8.5 抽象类Y8.6 多态性再讨论8.4 虚函数Y8.5.1 导 论Y8.5.2 虚函数的一般事宜Y8.5.3 静态邦定、动态邦定8.5.1 导论I am a member;I am a member;I am a member;8.5.1 导论I am a member;I am a TEACHER;I am a STUDENT;8.5.2 虚函数的一般事宜Y一般形式:vvirtual 返回值类型 函数名(形参列表)v仅在类申明中添加关键字,在类实现中不需要添加;Y说明:v如果函数在基类中是虚函数,派生类重定义时,即使不加“virtual”,该函数仍然是虚函数;8.5.3 静态邦定、动态邦定Y静态邦定:v在编译阶段就能确定的邦定方式;Y动态邦定:v在运行过程中才能确定的邦定方式;v类继承、指针、虚函数配合实现一般将析构函数定义为虚函数YWhy?题 目Y请写一个程序满足:v让用户输入10个图形(直线、或圆)的资料,然后将所有图形的资料显示出来;v直线的信息:起点、终点v圆 的 信 息:圆心、半径Y程序改进程序改进:v其他要求不变,但图形种类增加了种类:椭圆v椭 圆 的 信 息:圆心、大径、小径目 录Y8.1 导 论Y8.2 函数重载Y8.3 运算符重载Y8.4 虚函数Y8.5 抽象类抽象类Y8.6 多态性再讨论8.5 抽象类空函数体派生类不重定义Figure a;合法,合法,但无意义但无意义8.5 抽象类Y纯虚函数:v形式v派生类必须重定义;Y抽象类:v包含纯虚函数纯虚函数的类被称为纯虚类纯虚类;v不允许定义纯虚函数的对象对象;纯虚类与抽象类的应用CStack目 录Y8.1 导 论Y8.2 函数重载Y8.3 运算符重载Y8.4 虚函数Y8.5 抽象类Y8.6 多态性再讨论多态性再讨论8.6 多态性Y在程序中同一符号或表示在不同情况下具有不同解释的现象称为多态性多态性;Y编译是多态性(静态多态性):v函数重载实现Y运行时多态性(动态多态性):v虚函数、指针
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!