Aracılığıyla paylaş


C++ yerleşik işleçleri, önceliği ve ilişkilendirilebilirliği

C++ dili tüm C işleçlerini içerir ve birkaç yeni işleç ekler. İşleçler, bir veya daha fazla işlenen üzerinde gerçekleştirilecek bir değerlendirme belirtir.

Öncelik ve ilişkisellik

İşleç önceliği , birden fazla işleç içeren ifadelerdeki işlemlerin sırasını belirtir. İşleç ilişkilendirmesi , aynı önceliğe sahip birden çok işleç içeren bir ifadede işlenenin soldaki işleçle mi yoksa sağındaki işleçle mi gruplandırıldığını belirtir.

Alternatif yazımlar

C++ bazı işleçler için alternatif yazımları belirtir. C'de, alternatif yazımlar iso646.h> üst bilgisinde <makro olarak sağlanır. C++ dilinde bu alternatifler anahtar sözcüklerdir ve iso646.h> veya C++ eşdeğeri <ciso646> kullanımı <kullanım dışıdır. Microsoft C++'da alternatif /permissive- yazımları etkinleştirmek için veya /Za derleyici seçeneği gereklidir.

C++ işleç önceliği ve ilişkilendiricilik tablosu

Aşağıdaki tablo C++ işleçlerinin önceliğini ve ilişkilendirilebilirliğini (en yüksekten en düşük öncelikliye) göstermektedir. Başka bir ilişki açıkça parantezlerle zorlanmadıkça aynı öncelik numarasına sahip işleçler eşit önceliğe sahiptir.

İşleç Açıklaması İşleç Alternatif
Grup 1 önceliği, ilişkilendirme yok
Kapsam çözümlemesi ::
Grup 2 önceliği, soldan sağa ilişkilendirme
Üye seçimi (nesne veya işaretçi) . veya ->
Dizi alt indis []
İşlev çağrısı ()
Sonek artışı ++
Sonek azaltma --
Tür adı typeid
Sabit tür dönüştürme const_cast
Dinamik tür dönüştürme dynamic_cast
Yeniden yorumlanmış tür dönüştürme reinterpret_cast
Statik tür dönüştürme static_cast
Grup 3 önceliği, sağdan sola ilişkilendirme
Nesnenin veya türün boyutu sizeof
Ön ek artışı ++
Ön ek azaltma --
Kişinin tamamlayıcısı ~ compl
Mantıksal değil ! not
Tekli olumsuzlama -
Birli artı +
Adresi &
Gerekebilen *
Nesne oluşturma new
Nesneyi yok etme delete
Döküm ()
Grup 4 önceliği, soldan sağa ilişkilendirme
Üye işaretçisi (nesneler veya işaretçiler) .* veya ->*
Grup 5 önceliği, soldan sağa ilişkilendirme
Çarpma *
Bölümü /
Modülü %
Grup 6 önceliği, soldan sağa ilişkilendirme
Ek +
Çıkarma -
Grup 7 önceliği, soldan sağa ilişkilendirme
Sol vardiya <<
Sağ vardiya >>
Grup 8 önceliği, soldan sağa ilişkilendirme
Küçüktür <
Büyüktür >
Küçük veya eşittir <=
Büyüktür veya eşittir >=
Grup 9 önceliği, soldan sağa ilişkilendirme
Eşitlik ==
Eşitsiz -lik != not_eq
Grup 10 önceliği soldan sağa ilişkilendirme
Bit Düzeyinde VE & bitand
Grup 11 önceliği, soldan sağa ilişkilendirme
Bit düzeyinde özel OR ^ xor
Grup 12 önceliği, soldan sağa ilişkilendirme
Bit düzeyinde dahil OR | bitor
Grup 13 önceliği, soldan sağa ilişkilendirme
Mantıksal AND && and
Grup 14 önceliği, soldan sağa ilişkilendirme
Mantıksal VEYA || or
Grup 15 önceliği, sağdan sola ilişkilendirme
Koşullu ? :
Atama =
Çarpma ataması *=
Bölme ataması /=
Modulus ataması %=
Ekleme ataması +=
Çıkarma ataması -=
Sol vardiya ataması <<=
Sağ vardiya ataması >>=
Bit düzeyinde AND ataması &= and_eq
Bit düzeyinde kapsayıcı OR ataması |= or_eq
Bit düzeyinde özel OR ataması ^= xor_eq
throw ifadesi throw
Grup 16 önceliği, soldan sağa ilişkilendirme
Comma ,

Ayrıca bkz.

İşleç aşırı yüklemesi