清华大学c++课件第8章

清华大学c++课件第8章

ID:37397927

大小:474.50 KB

页数:56页

时间:2019-05-11

清华大学c++课件第8章_第1页
清华大学c++课件第8章_第2页
清华大学c++课件第8章_第3页
清华大学c++课件第8章_第4页
清华大学c++课件第8章_第5页
资源描述:

《清华大学c++课件第8章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1第八章多态性清华大学郑莉C++语言程序设计2本章主要内容多态性运算符重载虚函数纯虚函数抽象类深度探索3多态性的概念多态性是面向对象程序设计的重要特征之一。多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。多态的实现:函数重载运算符重载虚函数4问题举例——复数的运算classComplex{//复数类声明public:Complex(doubler=0.0,doublei=0.0){real=r;imag=i;}voiddisplay()const;//显示复数的值private:doubler

2、eal;doubleimag;};运算符重载5问题举例——复数的运算用“+”、“-”能够实现复数的加减运算吗?实现复数加减运算的方法——重载“+”、“-”运算符运算符重载6运算符重载的实质运算符重载是对已有的运算符赋予多重含义必要性C++中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)实现机制将指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参。编译系统对重载运算符的选择,遵循函数重载的选择原则。运算符重载规则和限制C++中能够被重载的运算符有:newdeleten

3、ew[]delete[]+-*/%ˆ&

4、˜!=<>+=-=*=/=%=ˆ=&=

5、=<<>>>>=<<===!=<=>=&&

6、

7、++--,->*->()[]7运算符重载8运算符重载规则和限制(续)只能重载C++语言中已有的运算符,不可臆造新的。不改变原运算符的优先级和结合性。不能改变操作数个数。经重载的运算符,其操作数中至少应该有一个是自定义类型。9两种形式重载为类的非静态成员函数重载为非成员函数运算符重载10运算符函数声明形式函数类型operator运算符(形参){......}重载为类成员函数时参数个数=原操作数个

8、数-1(后置++、--除外)重载为非成员函数时参数个数=原操作数个数,且至少应该有一个自定义类型的形参。运算符重载11运算符成员函数的设计双目运算符B如果要重载B为类成员函数,使之能够实现表达式oprd1Boprd2,其中oprd1为A类对象,则B应被重载为A类的成员函数,形参类型应该是oprd2所属的类型。经重载后,表达式oprd1Boprd2相当于oprd1.operatorB(oprd2)运算符重载12运算符重载例8-1将“+”、“-”运算重载为复数类的成员函数。规则:实部和虚部分别相加减。操作数:两个操作数都

9、是复数类的对象。#includeusingnamespacestd;classComplex{//复数类定义public://外部接口Complex(doubler=0.0,doublei=0.0):real(r),imag(i){}//构造函数Complexoperator+(constComplex&c2)const;//运算符+重载成员函数Complexoperator-(constComplex&c2)const;//运算符-重载成员函数voiddisplay()const;//输出复数p

10、rivate://私有数据成员doublereal;//复数实部doubleimag;//复数虚部};13ComplexComplex::operator+(constComplex&c2)const{//重载运算符函数实现returnComplex(real+c2.real,imag+c2.imag);//创建一个临时无名对象作为返回值}ComplexComplex::operator-(constComplex&c2)const{//重载运算符函数实现returnComplex(real-c2.real,imag

11、-c2.imag);//创建一个临时无名对象作为返回值}14voidComplex::display()const{cout<<"("<

12、2;//使用重载运算符完成复数加法cout<<"c3=c1+c2=";c3.display();return0;}15程序输出的结果为:c1=(5,4)c2=(2,10)c3=c1-c2=(3,-6)c3=c1+c2=(7,14)1617运算符成员函数的设计前置单目运算符U如果要重载U为类成员函数,使之能够实现表达式Uoprd,其中oprd为A

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

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

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