zoukankan      html  css  js  c++  java
  • 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 外,重载的操作符参数中至少要有一个非内建数据类型。
    • 重载的的操作符应尽量模拟操作符对内建类型的行为。
    天行健君子以自强不息。
  • 相关阅读:
    hdoj 1305字典树水题之二
    nyoj 547 水池加水 priority_queue优先级队列初体验
    nyoj167 找奶牛病毒 “按位或”运算 递归
    HDOJ4525 吃鸡腿 腾讯马拉松(五)
    hdoj 4523 切蛋糕 腾讯马拉松 大数加法比较
    如何学好3D游戏引擎编程《转自3D游戏引擎网》
    priority_queue 优先级队列的基本应用和重载问题
    poj1611 传染病 并查集
    srand((unsigned)time(NULL))和rand()
    最近被一个windows mobile照相的问题给难住了
  • 原文地址:https://www.cnblogs.com/mrye/p/2671736.html
Copyright © 2011-2022 走看看