优先级 结合律 运算符 功能 用法
    1 :: 全局作用域 ::name
    1 :: 类作用域 class::name
    1 :: 命名空间作用域 namespace::name
    2 . 成员选择 object.member
    2 -> 成员选择 pointer->member
    2 [] 下标 expr[expr]
    2 () 函数调用 name(epxr_list)
    2 () 类型构造 type(expr_list)
    3 ++ 后置递增运算 lvalue++
    3 -- 后置递减运算 lvalue--
    3 typeid 类型ID typeid(type)
    3 typeid 运行时类型ID typeid(expr)
    3 explicit cast 类型转换 cast_name<type>(expr)
    4 ++ 前置递增运算 ++lvalue
    4 -- 前置递减运算 --lvalue
    4 ~ 位求反 ~expr
    4 ! 逻辑非 !expr
    4 - 一元负号 -expr
    4 + 一元正号 +expr
    4 * 解引用 *expr
    4 & 取地址 &lvalue
    4 () 类型转换 (type)expr
    4 sizeof 对象的大小 sizeof expr
    4 sizeof 类型的大小 sizeof(type)
    4 sizeof... 参数包的大小 sizeof...(name)
    4 new 创建对象 new type
    4 new[] 创建数组 new type[size]
    4 delete 释放对象 delete expr
    4 delete[] 释放数组 delete []expr
    4 noexcept 能否抛出异常 noexcept(expr)
    5 ->* 指向成员选择的指针 ptr->*ptr_to_member
    5 .* 指向成员选择的指针 obj.*ptr_to_member
    6 * 乘法 expr * expr
    6 / 除法 expr / expr
    6 % 取模(取余) expr % expr
    7 + 加法 expr + expr
    7 - 减法 expr - expr
    8 << 向左移位 expr << expr
    8 >> 向右移位 expr >> expr
    9 < 小于 expr < expr
    9 <= 小于等于 expr <= expr
    9 > 大于 expr > expr
    9 >= 大于等于 expr >= expr
    10 == 相等 expr == expr
    10 != 不相等 expr != expr
    11 & 位与 expr & expr
    12 ^ 位异或 expr ^ expr
    13 &#124; 位或 expr &#124; expr
    14 && 逻辑与 expr && expr
    15 &#124;&#124; 逻辑或 expr &#124;&#124; expr
    16 ? : 条件 expr ? expr : expr
    16 = 赋值 lvalue = expr
    16 +=
    复合赋值 lvalue += expr
    17 throw 抛出异常 throw expr
    18 , 逗号 expr, expr