Předdefinované operátory, priority a asociativita v jazyce C++

Jazyk C++ obsahuje všechny operátory jazyka C a přidává několik nových operátorů. Operátory určují vyhodnocení, které má být provedeno na jednom nebo více operandů.

Priorita a asociativita

Priorita operátora určuje pořadí operací ve výrazech, které obsahují více než jeden operátor. Asociativita operátor určuje, zda ve výrazu, který obsahuje více operátorů se stejnou prioritou, je operand seskupen s jednou nebo na jeho pravé straně.

Alternativní pravopisné

Jazyk C++ Určuje alternativní pravopis pro některé operátory. V jazyce C jsou alternativní pravopisy k dispozici jako makra v < hlavičce iso646. h > . V jazyce C++ tyto alternativy jsou klíčová slova a použití < iso646. h > nebo ekvivalentu Ciso646 jazyka c++ <> je zastaralé. V jazyce Microsoft C++ /permissive-/Za je pro povolení alternativních pravopisů nutná možnost kompilátoru nebo.

Priorita operátoru C++ a tabulka asociativita

Přednost a asociativita operátorů v jazyce C++ je uvedena v následující tabulce (od nejvyšší priority k nejnižší). Operátory se stejnou prioritou mají stejnou přednost, pokud pomocí závorek není explicitně vynucen jiný vztah.

Popis operátoru Operátor Jiné
Priorita skupiny 1, žádné asociativita
Rozlišení rozsahu ::
Priorita skupiny 2, zleva doprava asociativita
Výběr členů (objekt nebo ukazatel) ani ->
Dolní index pole []
Volání funkce ()
Přírůstek přípony ++
Snížení přípony --
Název typu typeid
Převod typu konstanty const_cast
Dynamický převod typu dynamic_cast
Přeinterpretovaný převod typu reinterpret_cast
Statický typ převodu static_cast
Priorita skupiny 3, zprava doleva asociativita
Velikost objektu nebo typu sizeof
Přírůstek předpony ++
Snížení předpony --
Doplněk ~ compl
Logický operátor NOT ! not
Unární negace -
Unární plus +
Adresa &
Dereference *
Vytvořit objekt new
Zničit objekt delete
Využívají ()
Priorita skupiny 4, zleva doprava asociativita
Ukazatel na člena (objekty nebo ukazatele) ani ->*
Priorita skupiny 5, zleva doprava asociativita
Násobení *
Oddělení /
Numerický zbytek (modulo) %
Priorita skupiny 6, zleva doprava asociativita
Sčítání +
Odčítání -
Priorita skupiny 7, zleva doprava asociativita
Posun doleva <<
Posun doprava >>
Skupina 8 s prioritou, zleva doprava asociativita
Je menší než <
Větší než >
Menší než nebo rovno <=
Větší než nebo rovno >=
Priorita skupiny 9, zleva doprava asociativita
Rovnost ==
Nerovnost != not_eq
Levá asociativitaá priorita skupiny 10 vpravo
Bitový operátor AND & bitand
Priorita skupiny 11, zleva doprava asociativita
Bitový exkluzivní operátor OR ^ xor
Skupina 12 – priorita, zleva doprava asociativita
Bitový inkluzivní operátor OR | bitor
Priorita skupiny 13, zleva doprava asociativita
Logický operátor AND && and
Priorita skupiny 14, zleva doprava asociativita
Logický operátor OR || or
Skupina 15 – priorita, zprava doleva asociativita
Podmíněné ? :
Přiřazení =
Přiřazení násobení *=
Přiřazení dělení /=
Přiřazení modulus %=
Přiřazení sčítání +=
Přiřazení odčítání -=
Přiřazení posunutí doleva <<=
Přiřazení posunutí doprava >>=
Přiřazení bitového operátoru AND &= and_eq
Přiřazení s bitovým operátorem OR |= or_eq
Bitové exkluzivní přiřazení OR ^= xor_eq
Výraz throw throw
16. Priorita, zleva doprava asociativita
Čárka ,

Viz také

Přetížení operátoru