当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

中国科学技术大学:《C++语言程序设计》课程教学资源(讲义)第八章 多态性

资源类别:文库,文档格式:PDF,文档页数:59,文件大小:371.07KB,团购合买
 多态性  运算符重载  虚函数  纯虚函数  抽象类  深度探索
点击下载完整版文档(PDF)

C++语言程序设计 第八章多态性

1 第八章 多态性 C++语言程序设计

C++语言程序设计 本拿主要内容 ●多态性 ·运算符重载 。虚函数 ●纯虚函数 。抽象类 ·深度探索 *米 a 米

C++语言程序设计 2 本章主要内容  多态性  运算符重载  虚函数  纯虚函数  抽象类  深度探索

C++语言程序设计 多态性的概念 多 态 ● 多态性是面向对象程序设计的重要特 性 征之一。 概 ● 多态性是指发出同样的消息被不同类 述 型的对象接收时有可能导致完全不同 的行为。 -消息:对类的成员函数的调用 不同的行为不阿的实现,即调用了柔半 同的函数

C++语言程序设计 多态性的概念  多态性是面向对象程序设计的重要特 征之一。  多态性是指发出同样的消息被不同类 型的对象接收时有可能导致完全不同 的行为。 – 消息:对类的成员函数的调用 – 不同的行为:不同的实现,即调用了不 同的函数 3 多态性概述

C++语言程序设计 多态的类型 多 态 强制多态:数据类型转换(隐式或显 性 概 式) 述 ●重载多态:函数重载,运算符重载 ●包含多态:虚函数 ·类型参数化多态:函数模板, 类模板举

C++语言程序设计 多态的类型  强制多态:数据类型转换(隐式或显 式)  重载多态:函数重载,运算符重载  包含多态:虚函数  类型参数化多态:函数模板,类模板 4 多态性概述

C++语言程序设计 多态的实现 态 ·绑定:确定同名操作的具体操作对象的 性 过程 概 述 ●编译时多态:静态绑定 强制、重载和参数多态 ·运行时多态:动态绑定 一包含多态

C++语言程序设计 多态的实现  绑定:确定同名操作的具体操作对象的 过程  编译时多态:静态绑定 – 强制、重载和参数多态  运行时多态:动态绑定 – 包含多态 5 多态性概述

C++语言程序设计 问题举例一 复数的运算 运 算class Complex{/复数类声明 符 public: 重 Complex(double r 0.0,double i 0.0){ real r;imag=i; 载 void display()const; /显示复数的值 private: double real; double imag; };

C++语言程序设计 6 问题举例——复数的运算 class Complex { //复数类声明 public: Complex(double r = 0.0,double i = 0.0) { real = r; imag=i; } void display() const; //显示复数的值 private: double real; double imag; }; 运算符重载

C++语言程序设计 问题举例 复数的运算 远 算 ●用“+”、“”能够实现复数的加减运 符 算吗? 重 载 ●3 实现复数加减运算的方法 一重载“+”、“”运算符

C++语言程序设计 7 问题举例——复数的运算  用“+”、“-”能够实现复数的加减运 算吗?  实现复数加减运算的方法 ——重载“+”、“-”运算符 运算符重载

C++语言程序设计 运算符重载的实质 运 算 ·运算符重载是对已有的运算符赋予多重含义 符 。必要性 重 一C++中预定义的运算符其运算对象只能是基本数 据类型,而不适用于用户自定义类型(如类) 载 。实现机制 一将指定的运算表达式转化为对运算符函数的调 用,运算对象转化为运算符函数的实参 编译系统对重载运算符的选择,遵循函数重载 的选择原则

C++语言程序设计 8 运算符重载的实质  运算符重载是对已有的运算符赋予多重含义  必要性 – C++中预定义的运算符其运算对象只能是基本数 据类型,而不适用于用户自定义类型(如类)  实现机制 – 将指定的运算表达式转化为对运算符函数的调 用,运算对象转化为运算符函数的实参。 – 编译系统对重载运算符的选择,遵循函数重载 的选择原则。 运算符重载

C++语言程序设计 规则和限制 运 算 ● C+不允许重载下列四个运算符: .*:?: 符 重 ●只能重载C++语言中已有的运算符, 不可臆造新的。 载 ·不改变原运算符的优先级和结合性。 ●不能改变操作数个数。 ● 经重载的运算符,其操作数中至少应 该有一个是自定义类型

C++语言程序设计 9 运算符重载 规则和限制  C++不允许重载下列四个运算符: . .* :: ?:  只能重载C++语言中已有的运算符, 不可臆造新的。  不改变原运算符的优先级和结合性。  不能改变操作数个数。  经重载的运算符,其操作数中至少应 该有一个是自定义类型

C++语言程序设计 两种形式 运 算 符 。重载为类的非静态成员函数 重 重载为非成员函数 载 米

C++语言程序设计 10 两种形式  重载为类的非静态成员函数  重载为非成员函数 运算符重载

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共59页,可试读20页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有