GIS程序设计第六章.ppt

GIS程序设计第六章.ppt

ID:61833234

大小:203.50 KB

页数:23页

时间:2021-03-23

GIS程序设计第六章.ppt_第1页
GIS程序设计第六章.ppt_第2页
GIS程序设计第六章.ppt_第3页
GIS程序设计第六章.ppt_第4页
GIS程序设计第六章.ppt_第5页
资源描述:

《GIS程序设计第六章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、6.1运算符重载的语法6.2一元运算符6.3二元运算符的重载6.4特殊的运算符6.4.1=运算符的重载6.4.2++和--运算符的重载6.4.3new和delete运算符的重载6.4.4[]的重载第6章运算符重载运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据导致不同类型的行为。它的主要优点之一就是用户自定义的数据类型可使用编译系统预定义的运算符。运算符重载函数的一般形式为:类型类名::operator重载的运算符(参数列表){相关操作;}定义一个重载的运算符是这个函数的名字必须以operator开头。它的参数个数由以下两个

2、因素决定:(1)该操作符是一元操作符还是二元操作符【6.1运算符重载的语法】当运算符函数是全局函数时,需要在类中将该函数说明为友员。复数类运算符重载//EXAMPLE6_01.H#ifndefEXAMPLE6_01_H//用于防止文件的多重编译#defineEXAMPLE6_01_H#includeclasszComplex{doublerealpart;doubleimagpart;(2)它是被定义为全局函数还是一个成员函数。如果是全局函数,那么对于一元操作符它的参数个数就是1个(后置++、--除外),二元操作符的参数个数是

3、2个;如果是成员函数,那么对于一元操作符的参数个数为0,二元操作符的参数个数为1。这是由于该类本身也作为一个操作数参与计算,所以成员函数的参数要比全局函数的参数个数少1。例6-1public://构造函数zComplex();zComplex(doubler1,doublei1);zComplex(constzComplex&c);zComplex(doublec){realpart=(double)c;imagpart=0;}//取复数的实部和虚部doublereal();doubleimag();frienddoublereal(constzCo

4、mplex&);frienddoubleimag(constzComplex&);//运算符重载为成员函数zComplexoperator+(constzComplex&);zComplexoperator-(constzComplex&);zComplexoperator*(constzComplex&);zComplexoperator/(constzComplex&);zComplexoperator=(constzComplex&);(续)//运算符重载为友元函数friendintoperator==(constzComplex&,const

5、zComplex&);friendintoperator!=(constzComplex&,constzComplex&);//showcomplexvoidprint();};#endif(1)虽然运算符重载可以改变运算符原来的行为,但是它并不能改变运算符的优先级、结合性、操作数的个数。也不能创建新的运算符,只能重载现有的运算符。运算符重载具有非常强的灵活性。在具体应用的时候要注意以下几点问题:对于成员函数,一元运算符的参数为0;二元运算符的参数个数为1,如复数类中的==运算符,参数个数为2。对于友元函数,参数的个数与操作数个数相同。(3)在重载运

6、算符()、[]、->或者=时,运算符重载函数必须声明为类的一个成员。对于其他的运算符,运算符重载函数可以是成员函数或者友元函数。(2)运算符重载函数的参数至少有一个必须是自定义类型。(续)运算符可重载+-*/%^&

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

8、=<<>>>>=<<===!=<=>=&&

9、

10、++--->*,->[]()newdelete*::?:sizeof不可重载表可以重载和不可重载的运算符C++中定义的一元运算符有+、-、*、++、--、!等等。一元运算符重载函数可以是成员函数,也可以是友元函数。例6-2一元运算符重载//EXAMPLE

11、6_02.H#ifndefEXAMPLE6_02_H#defineEXAMPLE6_02_H//类声明#includeclassunarytest1{intdata;public:unarytest1(inti=0){data=i;}(续)【6.2一元运算符】例6-2//运算符重载函数作为类成员函数unarytest1&operator+();const;unarytest1&operator-();const;//运算符重载函数作为友元函数friendconstunarytest1&operator~(constunarytes

12、t1&a);friendconstunarytest1&operator!(constunarytest1&

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

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

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