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" |
sum is 13 |
| 回书目 上一节 下一节 |