程序设计对象分册(第3章).ppt

程序设计对象分册(第3章).ppt

ID:56531118

大小:139.50 KB

页数:44页

时间:2020-06-27

程序设计对象分册(第3章).ppt_第1页
程序设计对象分册(第3章).ppt_第2页
程序设计对象分册(第3章).ppt_第3页
程序设计对象分册(第3章).ppt_第4页
程序设计对象分册(第3章).ppt_第5页
资源描述:

《程序设计对象分册(第3章).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章多态性本章学习重点掌握内容:多态的概念和作用,多态的实现方法常见运算符的重载静态联编和动态联编虚函数、纯虚函数和抽象基类的概念和用法虚析构函数的概念和作用,虚析构函数的用法1第3章多态性3.1多态性的概念3.2运算符重载3.3联编和虚函数3.4纯虚函数和抽象类3.5综合应用实例23.1多态性的概念多态性(Polymorphism)是面向对象程序设计的重要特性之一,它与封装性和继承性一起构成了面向对象程序设计的三大特性。多态性是指当不同的对象收到相同的消息时,产生不同的动作。利用多态性可以设计和实现一个易于扩展的系统。在面向对象程序设计里多态性主要体现在:向不同

2、的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。C++支持两种形式的多态性,一种是编译时的多态性,称为静态联编。33.2.1运算符重载概述复数类ComplexclassComplex{public:Complex(){real=image=0;}Complex(doubler,doublei){real=r,image=i;}voidPrint();private:doublereal,image;};voidComplex::Print(){if(image<0)cout<

3、<

4、算符时,不能改变运算符原有的优先级别,也不能改变运算符需要的操作数的数目。重载之后运算符的优先级和结合性都不会改变。(3)不能创建新的运算符,只能重载c++中已有的运算符。(4)有些运算符不能进行重载。如:“.”类成员运算符、“*”类指向运算符、“::”类作用域运算符、“?:”条件运算符及“sizeof”求字节数运算符。63.2.2运算符重载的实现运算符重载的本质就是函数重载。首先把指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参,然后根据实参的类型来确定需要调用的函数.这个过程是在编译过程中完成的。运算符重载形式有两种:重载为类的成员函数、

5、重载为类的友元函数。1.运算符重载为类的成员函数语法形式如下:函数类型operator运算符(形参表){函数体;}72.运算符重载为类的友元函数运算符重载还可以为友元函数。当重载友元函数时,将没有隐含的参数this指针。语法形式如下:friend函数类型operator运算符(形参表){函数体;}3.2.2运算符重载的实现83.2.3双目运算符重载【例3.1】定义一个复数类,重载“+”运算符为复数类的成员函数,使这个运算符能直接完成两个复数的加法运算,以及一个复数与一个实数的加法运算。#includeclassComplex{public:C

6、omplex(){real=image=0;}Complex(doubler,doublei){real=r,image=i;}voidPrint();Complexoperator+(Complex&);Complexoperator+(float);private:doublereal,image;};9voidComplex::Print(){if(image<0)cout<

7、x&c){Complext;t.real=real+c.real;t.image=image+c.image;returnt;}ComplexComplex::operator+(floats){Complext;t.real=real+s;t.image=image;returnt;}voidmain(void){Complexc1(25,50),c2(100,200),c3;cout<<"c1=";c1.Print();cout<<"c2=";c2.Print();c3=c1+c2;cout<<"c3=c1+c2=";c3.Print();c1=c1+200

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

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

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