================================================================================ Precedencia de Operadores en C++ ================================================================================ nombre_clase::miembro Resolución de ámbito nombre_esp_nombres::miembro Resolución de ámbito ::nombre Ámbito global ::nombre_calificado Ámbito global ----------------------------------------------------------------------------- objeto.miembro Selección de miembro puntero->miembro Selección de miembro puntero[expr] Indexación expr(list_expr) Llamada a función tipo(list_expr) Construcción de valor valor_i++ Post-incremento valor_i-- Post-decremento typeid(tipo) Identificación de tipo typeid(expr) Identificación de tipo en tiempo de ejecución dynamic_cast(expr) Conversión en TEjecución con verificación static_cast(expr) Conversión en TCompilación con verificación reinterpret_cast(expr) Conversión sin verificación const_cast(expr) Conversión const ----------------------------------------------------------------------------- sizeof expr Tamaño del objeto sizeof(tipo) Tamaño del tipo ++valor_i Pre-incremento --valor_i Pre-decremento ~expr Complemento !expr Negación lógica -expr Menos unario +expr Más unario &valor_i Dirección de *expr Desreferencia new tipo Creación (asignación de memoria) new tipo(list_expr) Creación (asignación de memoria e iniciación) new tipo [expr] Creación de array (asignación de memoria) new (list_expr) tipo Creación (emplazamiento) new (list_expr) tipo(list_expr) Creación (emplazamiento e inciación) delete puntero Destrucción (liberación de memoria) delete [] puntero Destrucción de un array (tipo) expr Conversión de tipo (obsoleto) ----------------------------------------------------------------------------- objeto.*puntero_a_miembro Selección de miembro puntero->*puntero_a_miembro Selección de miembro ----------------------------------------------------------------------------- expr * expr Multiplicación expr / expr División expr % expr Módulo ----------------------------------------------------------------------------- expr + expr Suma expr - expr Resta ----------------------------------------------------------------------------- expr << expr Desplazamiento a izquierda expr >> expr Desplazamiento a derecha ----------------------------------------------------------------------------- expr < expr Menor que expr <= expr Menor o igual que expr > expr Mayor que expr >= expr Mayor o igual que ----------------------------------------------------------------------------- expr == expr Igual expr != expr No igual ----------------------------------------------------------------------------- expr & expr AND de bits ----------------------------------------------------------------------------- expr ^ expr XOR de bits ----------------------------------------------------------------------------- expr | expr OR de bits ----------------------------------------------------------------------------- expr && expr AND lógico ----------------------------------------------------------------------------- expr || expr OR lógico ----------------------------------------------------------------------------- expr ? expr : expr Expresión condicional ----------------------------------------------------------------------------- valor_i = expr Asignación simple valor_i *= expr Multiplicación y asignación valor_i /= expr División y asignación valor_i %= expr Módulo y asignación valor_i += expr Suma y asignación valor_i -= expr Resta y asignación valor_i <<= expr Despl izq y asignación valor_i >>= expr Despl dch y asignación valor_i &= expr AND bits y asignación valor_i ^= expr XOR bits y asignación valor_i |= expr OR bits y asignación ----------------------------------------------------------------------------- throw expr Lanzar una excepción ----------------------------------------------------------------------------- expr , expr Secuencia ================================================================================ ================================================================================ Notas ----------------------------------------------------------------------------- Cada casilla contine operadores con la misma precedencia. ----------------------------------------------------------------------------- Los operadores de casillas más altas tienen mayor precedencia que los operadores de casillas más bajas. ----------------------------------------------------------------------------- Los operadores unitarios, los operadores de asignación y el operador condicional son asociativos por la derecha. Todos los demás son asociativos por la izquierda. ----------------------------------------------------------------------------- Sacado de "El Lenguaje de Programación C++" de B. Stroustrup. pg. 124 ================================================================================