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

转载于:https://www.cnblogs.com/justlikethat/p/3446249.html

【转载】C++操作符相关推荐

  1. [转载]C#操作符??和?:

    先看如下代码: string strParam = Request.Params["param"]; if ( strParam== null ) {     strParam= ...

  2. [转载]JAVA操作符

    几乎所有运算符都只能操作"主类型"(Primitives).例外是"="."= ="和"! =",它们能操作所有对象.除 ...

  3. c语言用string类型,c语言中的string

    1. strlen(char const* s); 函数传入的是c风格字符串(即以'\0'结尾的字符数组),返回的长度为size_t(即unsigned int),其长度不包括'\0'. 2. str ...

  4. (转载)你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符

    你好,C++(17)0.1*10不等于1.0--4.1.4 关系操作符4.1.5 逻辑操作符 4.1.4  关系操作符 在C++中,除了需要用算术操作符对数据进行加减乘除的算术操作之外,我们有时候还需 ...

  5. makefile学习(转载)

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重 ...

  6. NET基础(3):is 和 as 操作符

    在C#语言中进行类型转换的另外一种方式是使用is和as操作符.is检查对象是否兼容于指定类型,返回Boolean值true或false.注意,is操作符永远不抛出异常,例如以下代码: Object o ...

  7. shell 语法简介(转载)

    一.基本语法 1.1.shell文件开头 shell文件必须以下面的行开始(必须方在文件的第一行):  #!/bin/sh  符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使 ...

  8. 翻译-高质量JavaScript代码书写基本要点(转载)

    by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=1173 原文作者:S ...

  9. [转载]oracle索引的简单总结

    原文地址:oracle索引的简单总结作者:kindle 一.索引的概念: 数据库的索引类似于书籍的索引.在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程 ...

最新文章

  1. 发现一款3D 打印的pcDuino外壳
  2. Mozilla两款火狐插件包含恶意代码被紧急喊停
  3. TCP的三次握手,四次断开
  4. 微信小程序页面上面的名字怎么改_微信小程序改名方法,小程序名称设置规范...
  5. es6-Symbol
  6. 地形图绘制过程中的自然斜坡、陡坎、斜坡的区别
  7. 微前端之single-spa
  8. 一起学《Troubleshooting Oracle Performance》吧
  9. C#.Net工作笔记011---c# visual studio中的assembly理解
  10. 把合同中红色印章实现打印不显示方法
  11. 小说阅读器java源代码_Android项目源码任阅小说阅读器高仿追书神器
  12. 第二届上汽零束SOA平台开发者大会揭幕,智能汽车生态加速落地
  13. keil5生成bin文件和axf文件
  14. python word 表格最大列数_Excel表格中的行数和列数的最大是多少?
  15. DRBD配置文件参数解析
  16. ota升级 rk3399_Android7.1.2系统OTA升级
  17. 图的应用:骑士周游问题
  18. 选修课计算机应用基础学什么,网络选修课-计算机应用基础 -期末考.docx
  19. 从xgboost, lightgbm 到catboost
  20. 【Spring教程】2.spring入门

热门文章

  1. Ladda – 把加载提示效果集成到按钮中,提升用户体验
  2. 【C/C++语法外功】C/C++头文件一览[轉]
  3. 计算机硕士工资情况收集
  4. @@IDENTITY 的缺点 SCOPE_IDENTITY() 取而代之
  5. C# 与 Unity 同名函数
  6. 大数相乘(大数阶乘模板)
  7. 欧拉函数的相关应用 noj欧拉函数求和+noj 最大公约数求和
  8. 博通1300亿美元收购高通,一场充满大饼和落井下石的“大戏”
  9. purdue university some course and papers
  10. 《快速软件开发——有效控制与完成进度计划》