C课件C11.ppt


文档分类:IT计算机 | 页数:约48页 举报非法文档有奖
1/48
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/48
文档列表 文档介绍
第11章运算符重载
1
本章主要内容
运算符重载概述
运算符重载的规则和限制
运算符的重载形式
实例:Array类
类型之间的转换
实例:String类
单目运算符前置与后置的区分
实例:Date类
2
运算符重载概述
C++中预定义的运算符(如: +,-,*)的操作对象只能是基本的数据类型。
C++不允许建立新的运算符,但是允许在自定义的类中重载现有的运算符,使它在用于类的对象时具有新类型的含义。
例:+ 复数的加法
要在类的对象上使用运算符,该运算符必需重载,但有三个例外:
= : 赋值运算符,将源对象的每一个数据成员赋值给目标对象.
& : 取地址运算符,返回对象在内存中的地址.
, : 逗号运算符,从左侧表达式开始求值至右侧表达式.
3
问题举例——复数的运算
plex //复数类声明
{
public:
complex(double r=,double i=)
{ real=r ; imag=i; }
void display( ); //显示复数的值
private:
double real; //实部
double imag; //虚部
};
4
问题举例——复数的运算
用“+”、“-”能够实现复数的加减运算吗?
实现复数加减运算的方法 ——重载“+”、“-”运算符
5
运算符重载的规则和限制
不可以重载的运算符: . .* :: ?:
可重载的运算符
参见第430页,
6
运算符重载的规则和限制
只能重载C++语言中已有的运算符。
运算符重载不改变原运算符的优先级和结合性。
运算符重载不能改变操作数个数。
重载的功能应当与原有功能相类似,不能改变原运算符的操作对象个数,经重载的运算符,其操作数中至少应该有一个是自定义类型。
7
运算符的重载形式
有二中重载形式:
重载为类的成员函数。
重载为全局函数。
8
1、重载为类成员函数
声明形式
函数类型 operator运算符(形参)
{
......
}
重载为类成员函数时 参数个数=原操作数个数-1 (后置++、后置--除外)
函数类型指定了返回类型,即运算结果类型
9
运算符成员函数的设计
双目运算符 B
如果要重载运算符B 为类成员函数,使之能够实现表达式 oprd1 B oprd2,其中 oprd1 为A 类对象,则 B 应被重载为 A 类的成员函数,形参类型应该是 oprd2 所属的类型。
经重载后,表达式
oprd1 B oprd2 相当于 B(oprd2)
10

C课件C11 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数48
  • 收藏数0 收藏
  • 顶次数0
  • 上传人iris028
  • 文件大小184 KB
  • 时间2018-05-05
最近更新