C 课件 第八章 多态性.ppt

C 课件 第八章 多态性.ppt

ID:58891118

大小:585.50 KB

页数:53页

时间:2020-09-30

C  课件 第八章 多态性.ppt_第1页
C  课件 第八章 多态性.ppt_第2页
C  课件 第八章 多态性.ppt_第3页
C  课件 第八章 多态性.ppt_第4页
C  课件 第八章 多态性.ppt_第5页
资源描述:

《C 课件 第八章 多态性.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章多态性C++语言程序设计本章主要内容多态性运算符重载虚函数纯虚函数抽象类多态性的概念多态性是面向对象程序设计的重要特征之一。多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。继承和多态的关系。多态的类型:重载多态、包含多态、强制多态和参数多态。多态的实现编译时的多态(静态绑定),如函数重载、运算符重载等运行时的多态(动态绑定),如虚函数问题举例——复数的运算classcomplex{private:doublereal;doubleimag;public:complex(doubler=0.0,doublei=0.0){real=r;i

2、mag=i;}voiddisplay();};运算符重载问题举例——复数的运算如果不作任何编程,用“+”、“-”能够实现复数的加减运算吗?实现复数加减运算的方法——重载“+”、“-”运算符运算符重载运算符重载的实质运算符重载是对已有的运算符赋予多重含义。必要性C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)。实现机制将指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参。编译系统对重载运算符的选择,遵循函数重载的选择原则。运算符重载规则和限制可以重载C++中除下列运算符外的所有运算符: ..*::sizeof

3、?:只能重载C++语言中已有的运算符,不可臆造新的。运算符重载并不改变原运算符的优先级和结合性。运算符重载不改变操作数个数。经重载的运算符,其操作数中至少应该有一个是自定义类型。运算符重载运算符重载的两种形式(*)重载为类的成员函数。重载为友元函数。运算符重载运算符重载为成员函数(*)声明形式函数类型operator运算符(形参表){......}一般来说,运算重载为类的成员函数时,参数个数=原操作数个数减1。(后置++、--除外)运算符重载运算符成员函数的设计(1)双目运算符B如果要把B重载为类的成员函数,使之能够实现表达式oprd1Boprd2,其中oprd1

4、为A类对象,则B应被重载为A类的成员函数,形参类型应该是oprd2所属的类型。经重载后,表达式oprd1Boprd2相当于oprd1.operatorB(oprd2)运算符重载例8.1将“+”、“-”运算重载为复数类的成员函数。规则:实部和虚部分别相加减。操作数:两个操作数都是复数类的对象。运算符重载#includeclasscomplex{private:doublereal;doubleimag;public:complex(doubler=0.0,doublei=0.0){real=r;imag=i;}complexoperator+

5、(complexc2);complexoperator-(complexc2);voiddisplay();};complexcomplex::operator+(complexc2){complexc;c.real=c2.real+real;c.imag=c2.imag+imag;returnc;}complexcomplex::operator-(complexc2){complexc;c.real=real-c2.real;c.imag=imag-c2.imag;returnc;}voidcomplex::display(){cout<<"("<

6、<","<

7、员函数,使之能够实现表达式Uoprd,其中oprd为A类对象,则U应被重载为A类的成员函数,无形参。经重载后, 表达式Uoprd相当于oprd.operatorU()运算符重载运算符成员函数的设计(3)后置单目运算符++和--如果要把++或--重载为类成员函数,使之能够实现表达式oprd++或oprd--,其中oprd为A类对象,则++或--应被重载为A类的成员函数,且具有一个int类型形参。经重载后,表达式oprd++相当于oprd.operator++(0)运算符重载例8.2运算符前置++和后置++重载为时钟类的成员函数。前置单目运算符,重载函数没有形参,对于

8、后置单目运

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

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

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