设为首页 加入收藏

TOP

1.2.2 运算符重载的特点
2013-10-07 00:17:27 来源: 作者: 【 】 浏览:57
Tags:1.2.2 运算 重载 特点

1.2.2  运算符重载的特点

运算符重载有不同于函数重载的以下特点。

(1)使用operator关键字对重载函数进行标识和定义。运算符有3种形式,即中缀、后缀、前缀,它们的operator表示形式如表1-1所示。

表1-1  3种运算符的 operator表示形式

运算符分类< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

operator表示形式

中缀

a+b

operator +(a,b)

二元

前缀

-a

operator-(a,0)

一元

后缀

a++

operator ++(a)

一元

(2)只能重载C++(www.cppentry.com)提供的标准运算符。可重载的运算符在表1-2中列出。

表1-2  可重载的C++(www.cppentry.com)运算符

+            -                   *                 /                  %               ^                 &                  |                    ~                 !

=            <>                +=              -=              *=              /=               %=               ^=                 &=             |=

<<         >>                <<=            >>=            ==              =                <=                >=                &&             ||

++         -                   {}               ()                ->                             new             new[]            delete

elete[]                         类型转换运算符

注:类型转换运算符包括int、char、long、float、int*、char*等。

(3)参数个数固定。重载函数的参数个数与标准运算符保持一致。即对于一元运算符(前缀和后缀形式),重载函数有且只能有一个参数;对于二元运算符(中缀形式),重载函数有且只能有两个参数。

(4)针对类对象进行操作。即重载函数的参数至少有一个属于class类型。

示例1.5是重载“+”运算符的示例。

示例清单1.5

#include "stdio.h"
class CAdd
{
public:
CAdd()
{
m_Operand=0;
}
CAdd(int value)
{
m_Operand=value;
}
public:
int m_Operand;
};
//重载“+”运算符,操作CAdd类
//第一个参数类型是CAdd, 返回类型是CAdd
CAdd operator +(CAdd  a, int b)
{
CAdd  sum;
sum.m_Operand=a. m_Operand +b;
return sum;
}
int main(int argc, char* argv[])
{
CAdd a(5),b;
b=a+8;
printf("sum is %d\n",b.m_Operand);

return 0;
}
程序输出结果:
sum is 13

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.2.5 重载运算符的相关问题 下一篇1.2.1 运算符重载的定义

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: