1 / 37
文档名称:

运算符重载.ppt

格式:ppt   页数:37页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

运算符重载.ppt

上传人:yunde113 2014/8/5 文件大小:0 KB

下载得到文件列表

运算符重载.ppt

文档介绍

文档介绍:§ 重载运算符
第十八章目录
§ 其它运算符的重载举例
§ 运算符重载的语法形式
第十八章小结
重载运算符是C++ 的一个重要特性,使用运算符重载,程序员可以把C++ 运算符的定义扩展到运算分量是对象的情况。
运算符重载的目的是使C++ 代码更直观,更易读。
由简单的运算符构成的表达式常常比函数调用更简洁、易懂。
本章重点介绍如何定义和使用与类有关的运算符。
第十八章运算符重载(Operator Overloading)
Like most languages, C++ supports a set of operators for its built-in types.
However, most concepts for which operators are conventionally used are not built-in types in C++, so type must be represented as user-defined types.
For example, if you plex arithmetic, matrix algebra, logic signals, or character strings in C++, you use classes to represent these notions.
Defining operators for such classes sometimes allows a programmer to provide a more conventional and convenient notation for manipulating objects than could be achieved using only the basic functional notation.
§ 重载运算符
在基本数据类型上,系统提供了许多预定义的运算符。
例如: int x,y;
y=x+y;
对基本类型,这些运算符的操作具有特定的含义。
如果string 类的两个对象x 和y串要合并,以构成一个新字符串,即:
string x,y;
那么,可以使用函数strcat(x,y)实现两个串的合并。
如果在表示字符串的类对象x,y 的特定环境下,运算符“+”使用于类对象,能被解释为串对象x 和y 的合并,则编程就更方便了。
于是:
string x,y;
x=x+y; //表示串x 和串y 合并,放入串x
这就使对基本类型的预定义运算符“+”的含义在串类中被扩展为对串类对象的合并操作,即运算符“+”被重载。
运算符重载应注意的几个问题:
1、哪些运算符可以重载?
在C++ 中除了下面四种运算符外,系统预定义的运算符都能被重载。
::(Scope resolution);
. (Member selection);
->(Member selection through pointer to member);
?:(Conditional expression).
2、运算符重载要保持原运算符的下述特性不变:
优先级和结合性不变;
操作数个数不变;
语法结构不变。
3、运算符重载实际上是通过定义一个函数来实现的。运算符重载归根结底是函数的重载。编译器选择重载的运算符是遵循函数重载的选择原则,即按不同类型或个数的参数来选择不同的重载运算符。
4、运算符重载应符合使用****惯,便于理解。如果在字符串类中把“*”运算符重载为两个对象的合并操作,就不如把“+”运算符重载,更易于理解。
5、运算符重载不能创造新的运算符号。例如,不能创造一个新运算符号“**”,表示幂运算。
在C++中,运算符重载是通过运算符重载函数实现的,运算符重载函数一般采用下述两种形式之一。
成员函数的形式;
友元函数的形式。
1、运算符重载的成员函数形式
它是一种特殊的成员函数,其语法形式为:
type X::operator@(参数表)
{
//相对于该类而定义的操作(运算符重载函数体)
}
§ 运算符重载的语法形式
其中,type 为函数的返回类型;
@是泛指要重载的运算符号;
X是重载该运算符的类的类名;
operator 为关键字;
operator@为函数名。
参数表列出该运算符需要的操作数。单目运算参数表中无参数,调用该函数的对象为操作数。双目运算参数表中有一个参数,调用该函数的对象为第一操作数,参数表中的参数为第二操作数。
运算符函数体对重载的运算符的含义作出新的解释。这种解释仅局限在重载该运算符的类中,即当

最近更新

2024年芯类产品项目资金筹措计划书代可行性研.. 70页

2024年洗衣机电脑程控器项目投资申请报告代可.. 63页

医疗咨询行业未来发展展望 24页

08湖南烟草面试题目 5页

2020年山东省菏泽中考地理试卷-答案 9页

2021年三年级语文下册期末考试卷及答案(完整).. 5页

2021甘肃庆阳初二地理生物会考试卷 10页

2022年-2023年初级银行从业资格之初级银行业法.. 17页

2022年南京艺术学院公共课《思想道德基础与法.. 13页

2022年江西财经大学数据科学与大数据技术专业.. 17页

2022年高考理综乙卷生物答案评分标准 7页

2023年二级造价工程师考试讲义 40页

2023年毕业典礼活动流程方案模板(10篇) 27页

2023高职31 应用软件系统开发6(赛项赛题) 5页

GE实训指导书-图文 7页

[精解]大理石属于石灰岩 4页

【中考英语复习之课本知识归纳(牛津译林版)】.. 13页

世界科技发展史 5页

中小学幼儿园安全管理办法试题 4页

人教版八年级上册数学教案教师用书六篇 17页

以药动学参数为终点评价指标的化学药物仿制药.. 11页

供应商分析报告 5页

全新版大学进阶英语综合教程(二)课文+翻译(.. 13页

六年级英语上册Lesson1听力原文 18页

内部审计论文(优秀8篇) 18页

初中化学 溶液的酸碱性教学设计学情分析教材分.. 9页

励志的格言(集合15篇) 44页

卫生安全评价报告 5页

土木工程 外文翻译 外文文献 英文翻译 5页

复盘工作亮点和不足 6页