资源描述:
《类的运算符重载》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
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的数据成员逐个一一相加,返回结果:建立一个新的返回对象,如算术运算符返回另一个对象,关系