第7章 多态性与虚函数.ppt

第7章 多态性与虚函数.ppt

ID:48745258

大小:363.00 KB

页数:27页

时间:2020-01-21

第7章 多态性与虚函数.ppt_第1页
第7章 多态性与虚函数.ppt_第2页
第7章 多态性与虚函数.ppt_第3页
第7章 多态性与虚函数.ppt_第4页
第7章 多态性与虚函数.ppt_第5页
资源描述:

《第7章 多态性与虚函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第七章多态性与虚函数本章内容多态性概述运算符重载虚函数教学目标了解多态性的概念掌握简单运算符重载的方法掌握虚函数的定义和使用方法7.1多态性概述1.多态性的含义在C++中多态表现为同一形式的函数调用,可能调用不同的函数实现。2.多态性的表现形式参数多态:函数模板和类模板包含多态:继承了虚函数的派生类同名函数重载多态:函数重载和运算符重载强制多态:强制类型转换7.2运算符重载1.运算符函数C++将各种运算符都处理成一个特殊的函数调用。例:在程序中写:3+5系统处理成:operator+(3,5);C

2、++中预定义的多数运算符函数其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)2.运算符重载对C++的运算符函数进行重新定义,使之以同样的形式按重新定义的方式操作类的对象。7.2运算符重载3.运算符重载的规则7.2运算符重载4.实现运算符重载的两种方法将运算符函数重载为类的成员函数将运算符函数重载为类的友元函数7.2运算符重载说明:调用该函数的对象做为运算符函数的第一个参数重载二元运算符时,参数表中应有一个形参。重载一元运算符时,参数表应为空(后置++、--除外)。1)将运算符重载为类

3、的成员函数class类名{......类型名operator运算符(形参表);......};类型名类名::operator运算符(形参表){函数体}例:用成员函数重载“+”、“-”,实现两个复数的加、减运算。7.2运算符重载2)运算符函数重载为类的友员函数在类体内说明:friend类型名operator运算符(参数表);在类体外定义运算符函数的一般形式:类型名operator运算符(参数表){…}重载二元运算符时,参数表中应有两个形参。重载一元运算符时,参数表应有一个形参。以下运算符不能重载为

4、友元函数:=、()、[]、->但可以重载为成员函数说明:例1:用友员函数重载“+”、“-”,实现两个复数的加、减运算。讨论:一元运算符、二元复合赋值运算符(如:+=、-=)常常被重载为成员函数;其他二元运算符常常被重载为友元函数。在有些情况下,二元运算符不便于重载为成员函数。例:5.67+c其中,c是类complex的一个对象。将“+”重载为友元函数时,表达式将被编译程序解释为:operator+(complex(5.67),c)//正确(在complex类中应定义了相应的构造函数)。“+”重载为

5、成员函数时,则表达式被解释为:5.67.operator+(c)//错误例:用成员函数重载“+=”,实现字符串连接操作。例:用成员函数重载“+”,实现字符串连接操作。例7.13:编写程序对字符串类重载“+="运算符和"="运算符实现两个字符串的连接。7.3虚函数主要内容:什么是虚函数虚函数的作用虚函数的定义和使用规则纯虚函数和抽象类简介静态多态性可在编译期间确定的多态性。通常称为静态联编(staticbinding)。重载多态和参数多态一般是静态多态的。动态多态性在程序运行过程中,才能确定的多态性

6、。通常称为动态联编(dynamicbinding)。包含多态和强制多态一般是动态联编的。多态性的两种实现机制#includeclassBase{intx;public:Base(intx1){x=x1;}voidprint(){cout<<“x=”<

7、“y=”<print();//调用哪个print函数?pa=&d;pa->print();//调用哪个print函数?}1.虚函数的引入:不用虚函数时的静态联编。输出结果:x=5x=1017#includeclassBase{intx;public:Base(intx1){x=x1;}virtualvoidprint(){cout<<“x=”<

8、”;}};classDerevid:publicBase{inty;public:Derevid(intx1,inty1):Base(x1){y=y1;}voidprint(){Base::print();cout<<“y=”<print();//调用哪个print函数?pa=&d;pa->print();//调用哪个print函数?}1.虚函数的引入:通过虚函

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。