Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A linguagem C++ inclui todos os operadores C e adiciona vários operadores novos. Os operadores especificam uma avaliação a ser executada em um ou mais operandos.
Precedência e capacidade de associação
A precedência do operador especifica a ordem das operações em expressões que contêm mais de um operador. A associatividade do operador especifica se, em uma expressão que contém vários operadores com a mesma precedência, um operando é agrupado com aquele à sua esquerda ou com aquele à sua direita.
Ortografias alternativas
O C++ especifica ortografias alternativas para alguns operadores. Em C, as ortografias alternativas são fornecidas como uma macro no cabeçalho <iso646.h>. Em C++, as ortografias alternativas são palavras-chaves e o uso de <iso646.h> ou do equivalente em C++ <ciso646> foi preterido. No Microsoft C++, a opção do compilador /permissive- ou /Za é necessária para habilitar ortografias alternativas.
Tabela de associatividade e precedência do operador C++
A tabela a seguir mostra a precedência e a associatividade dos operadores C++ (da precedência mais alta a mais baixa). Os operadores com o mesmo número de precedência têm igual precedência, a menos que outra relação seja explicitamente forçada por parênteses.
| Descrição do operador | Operador | Alternativa |
|---|---|---|
| Precedência do grupo 1, sem associatividade | ||
| Resolução do escopo | :: |
|
| Precedência do grupo 2, associatividade da esquerda para a direita | ||
| Seleção de membro (objeto ou ponteiro) |
. ou -> |
|
| Matriz subscrita | [] |
|
| Chamada de função | () |
|
| Incremento de sufixo | ++ |
|
| Decremento pós-fixado | -- |
|
| Nome do tipo | typeid |
|
| Conversão de tipo constante | const_cast |
|
| Conversão de tipo dinâmico | dynamic_cast |
|
| Conversão de tipo reinterpretada | reinterpret_cast |
|
| Conversão de tipo estático | static_cast |
|
| Precedência do grupo 3, associatividade da direita para a esquerda | ||
| Tamanho do objeto ou tipo | sizeof |
|
| Incremento de prefixo | ++ |
|
| Decremento de prefixo | -- |
|
| Complemento de um | ~ |
compl |
| Expressão NOT lógica | ! |
not |
| Negação unária | - |
|
| Unário mais | + |
|
| Endereço de | & |
|
| Indireção | * |
|
| Criar objeto | new |
|
| Destrua o objeto | delete |
|
| Converter | () |
|
| Precedência do grupo 4, associatividade da esquerda para a direita | ||
| Ponteiro para membro (objetos ou ponteiros) |
.* ou ->* |
|
| Precedência do grupo 5, associatividade da esquerda para a direita | ||
| Multiplicação | * |
|
| Divisão | / |
|
| Módulo | % |
|
| Precedência do grupo 6, associatividade da esquerda para a direita | ||
| Adição | + |
|
| Subtração | - |
|
| Precedência do grupo 7, associatividade da esquerda para a direita | ||
| Deslocamento à esquerda | << |
|
| Deslocamento à direita | >> |
|
| Precedência do grupo 8, associatividade da esquerda para a direita | ||
| Menor que | < |
|
| Maior que | > |
|
| Menor ou igual a | <= |
|
| Maior ou igual a | >= |
|
| Precedência do grupo 9, associatividade da esquerda para a direita | ||
| Igualdade | == |
|
| Desigualdade | != |
not_eq |
| Precedência do grupo 10, associatividade da esquerda para a direita | ||
| AND bit a bit | & |
bitand |
| Precedência do grupo 11, associatividade da esquerda para a direita | ||
| OU exclusivo da Bitwise | ^ |
xor |
| Precedência do grupo 12, associatividade da esquerda para a direita | ||
| OU inclusivo bit a bit | | |
bitor |
| Precedência do grupo 13, associatividade da esquerda para a direita | ||
| AND lógico | && |
and |
| Precedência do grupo 14, associatividade da esquerda para a direita | ||
| OR lógico | || |
or |
| Precedência do grupo 15, associatividade da direita para a esquerda | ||
| Condicional | ? : |
|
| Cessão | = |
|
| Atribuição de multiplicação | *= |
|
| Atribuição de divisão | /= |
|
| Atribuição de módulo | %= |
|
| Atribuição de adição | += |
|
| Atribuição de subtração | -= |
|
| Atribuição de turno à esquerda | <<= |
|
| Atribuição de deslocamento à direita | >>= |
|
| Atribuição de E bit a bit | &= |
and_eq |
| Atribuição OR inclusiva bit a bit | |= |
or_eq |
| Atribuição OR exclusiva bit a bit | ^= |
xor_eq |
| expressão de arremesso | throw |
|
| Precedência do grupo 16, associatividade da esquerda para a direita | ||
| Comma | , |