类的运算符重载

类的运算符重载

ID:44327307

大小:30.63 KB

页数:19页

时间:2019-10-20

类的运算符重载_第1页
类的运算符重载_第2页
类的运算符重载_第3页
类的运算符重载_第4页
类的运算符重载_第5页
资源描述:

《类的运算符重载》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、类的运算符重载参考书籍:C++世界的两本世界名著[C++程序设计语言]和[C++primer]重载知识点1.重载运算符1.1引言1.2限定及重载语法1.2.1限定1.2.2重载语法1.3重载运算符设计指导1.4成员/非成员函数重载1.5成员函数重载1.6非成员函数(友元函数)重载1.7重载实例1.7.1重载输入输出符<<,>>1.7.2重载算法运算符+,-1.7.3重载关系运算符==,!=,>,<=,<,>=1.7.4重载赋值运算符=1.7.5重载下标结算符[]1.7.6重载前置自增++,自减--和重载后置自增++,自减--1.7.7重载

2、成员访问符->和*1.7.8重载调用操作符()1.7.9重载转换操作符operator(type) *****************************************************************************1前言重载运算符目的:1.用操作整数的各种运算方法,让运算符重载让类也具有整数的各种简单运算2.我们对类产生的对象进行非常方便的运算操作,让代码、简洁明了,操作方便***************************************************************

3、**************2定义2.1限定及重载语法可以重载的运算符+ - * / % ^&

4、 ~ ! = < >+=-= *= /= %= ^= &= 

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

6、

7、++ -- ->* , [] ()newdeletenew[]delete[]不可以重载的运算符::..*?:sizeoftypeid分类算术运算符+-*/%^++--复合算术运算符+=-=*=/=%=^=位运算符&

8、~!复合位运算符   &=

9、=逻辑运算符&&

10、

11、关系运算符==!=<=<>>=内存管理符newdeleten

12、ew[]delete[]输入输出运算符<<<<=>>>>=***************************************************************************** 2.2定义重载语法语法:returntype operatorop(类参数)中文:返回类型  operator 运算符号(参数)例子:itemoperator+(constitem&,constitem&); ************************************************************

13、*****************2.3成员函数实现操作符重载使用情况:通常对类本身的运算符重载如类nameclass的运算符函数名称operatorop如x,y都是类nameclass的生成的对象,如果重载并实现了operatorop我们可以做这样的计算xopy,编译器会自动翻译成如下x.operatorop(y)如op是重载的运算符是加法(+),那么可变成x+y,编译器会变成x.operator+(y)计算顺序是:xopy变成x=xopy,运算结果存入到x,x.operator+(y)第一个操作数是类的对象x,也就是隐含的对象指针th

14、is,第二个操作数是参数y,对象X与的数据成员逐个一一相加,返回结果:是计算完毕后返回到左边的对象,它返回的必须是对象,而不能是其它数据类型.重载下标[]取值运算符实例定义operator[]classfoo{private: vectordata;public: int&operator[](constsize_t);};实现operator[]int&foo::operator[](constsize_tindex){returndata[index];} **********************************

15、*******************************************2.4非成员函数(友元函数)实现操作符重载使用情况:类的对象之间进行的算法运算符,关系运算符,输入输出假设#是运算符号类nameclass的友元函数重载名称operator#如x,y都是类nameclass的生成的对象,如果重载并实现了友元函数operator#我们可以做这样的计算x#y,编译器会自动翻译成如下operator#(x,y)计算顺序是:xopy变成op(x,y),运算结果存入到新的临时对象,operator+(x,y)绝对无对象指针this

16、,返回值不会存入到x,y,而是返回新的临时对象第一个操作数是类的对象x,第二个操作数是参数y,对象X与Y的数据成员逐个一一相加,返回结果:建立一个新的返回对象,如算术运算符返回另一个对象,关系

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

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

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