【转载】C++操作符

C++操作符介绍

优先级

运算符

含    义

示  例

结合方向

要求运算

对象的个数

可重载性

1

::

全局解析

::x

自右至左

一元操作符

不可重载

::

类域解析

X::x

自左至右

二元操作符

不可重载

2

.

直接成员选择运算符

s.len

自左至右

二元操作符

不可重载

( )

圆括号

 

 

可重载

( )

函数调用

rand( )

( )

类型构造

int( ch)

[ ]

下标运算符

a[i]

二元操作符

->

间接成员选择运算符

p->len

二元操作符

++

后增

n++

自右至左

一元操作符

- -

后减

n- -

一元操作符

3

!

逻辑非运算符

!p

自右至左

一元操作符

可重载

~

按位取反运算符

~s

++

前增运算符

++n

- -

前减运算符

- -n

-

负号运算符

-n

*

反引用运算符

*p

&

求地址运算符

&x

new

空间分配

new int(9)

delete

空间释放

delete p

(类型)

类型转换运算符

(int)ch

二元操作符

sizeof

长度运算符

sizeof(a)

一元操作符

不可重载

4

*

乘法运算符

m*n

自左至右

二元操作符

可重载

/

除法运算符

m/n

%

求余运算符

m%n

5

+

加法运算符

m+n

自左至右

二元操作符

可重载

-

减法运算符

m-n

6

<< 

左移运算符

m<<n

自左至右

二元操作符

可重载

>> 

右移运算符

m>>n

7

小于

x<y

自左至右

二元操作符

可重载

<=

小于等于

x<=y

大于

x>y

>=

大于等于

x>=y

8

==

等于运算符

x==y

自左至右

二元操作符

可重载

!=

不等于运算符

x!=y

9

&

按位与运算符

s&t

自左至右

二元操作符

可重载

10

^

按位异或运算符

s^t

自左至右

二元操作符

可重载

11

|

按位或运算符

s|t

自左至右

二元操作符

可重载

12

&&

逻辑与运算符

u&&v

自左至右

二元操作符

可重载

13

||

逻辑或运算符

u||v

自左至右

二元操作符

可重载

14

? :

条件运算符

u? x : y

自左至右

三元操作符

不可重载

15

=

赋值运算符

n=22

自右至左

二元操作符

可重载

+=

先加,再赋值

n+=8

-=

先减,再赋值

n-=4

*=

先乘,再赋值

n*= -1

/=

先除,再赋值

n/10

%=

先求余,再赋值

n%=10

>>=

先左移位,再赋值

n>>=1

<<=

先右移位,再赋值

N<<=1

&=

先按位与,再赋值

s&=mask

^=

先按位异或,再赋值

s^=mask

|=

先按位或,再赋值

s|=mask

16

,

逗号运算符

++m,- -n

自左至右

 

可重载

  • 一元操作符可以是不带参数的成员函数带一个参数的非成员函数
  • 二元操作符可以是带一个参数的成员函数带两个参数的非成员函数
  • operator=、operator[]、operator()、operator->只能定义为成员函数。
  • operator->的返回值必须是一个指针或能使用->的对象。
  • 重载 operator++ 和 operator--时带一个 int 参数表示后缀,不带参数表示前缀。
  • 除 operator new 和 operator delete 外,重载的操作符参数中至少要有一个非内建数据类型。
  • 重载的的操作符应尽量模拟操作符对内建类型的行为。

原文地址  http://www.cnblogs.com/mrye/archive/2012/09/05/2671736.html

posted @ 2013-11-27 17:34  taylor.yan  阅读(218)  评论(0编辑  收藏  举报