Aracılığıyla paylaş


İntegral promosyonlar

Tamsayı türü nesneleri başka bir daha geniş tamsayı türü için (daha büyük bir deðer kümesini temsil edebilen bir tür) dönüştürülebilir.Dönüştürme widening bu tür "ayrılmaz promosyon." olarak adlandırılır İntegral promosyon ile aşağıdaki deyimde başka bir tamsayı türü kullanılan her yerde kullanabilirsiniz:

  • Nesneleri, harfleri ve sabitlerin türü char veshort int

  • Numaralandırma türleri

  • intbit alanları

  • Numaralandırıcılar

C++ promosyonlar "değeri-koruma." Diğer bir deyişle, değer yükseltme sonrasında promosyon önce değeri ile aynı olması sağlanır.Değer koruma promosyonlar, kısa ayrılmaz türden nesneler de (bit alanları veya nesne türü olarak char) yazmak için yükseltilmiş int , int özgün türünün tam aralığı temsil edebilir.int Nesne yazın görmeleri sonra tam aralýðý temsil edemez unsigned int.Bu strateji, ANSI c tarafından kullanılan aynı olmasına karşın, nesne "signedness" değerini koruyarak dönüşümleri korumaz.

Değer koruma promosyonlar ve signedness normalde korumak promosyon aynı sonucu verir.Ancak, yükseltilen nesne aşağıdakilerden biri ise farklı sonuçlar üretebilir:

  • An operand of /, %, /=, %=, <, <=, >, or >=

    Bu operatörler işareti sonucu belirlemek için kullanır.Bu nedenle, değer koruma ve koruma işareti promosyonlar bu işlenen uygulandığında farklı sonuçlar doğurur.

  • Sol iþleneni >> veya >> =

    Bu operatörler imzalı ve imzasız miktarları shift işlemi gerçekleştirirken davranırlar.İmzalı miktarlar için bir miktar sağa kaydırma vacated bit konumlara dağıtılmasını işaret biti neden olur.İmzasız miktarlar için sıfır dolgulu vacated bit yerlerdir.

  • Bir bağımsız değişken bir işlevde veya signedness bağımsız değişkeni eşleştirmek için bu işlenen tür bağlıdır bir aşırı yüklü operatör işlenen.(Bkz: İşleçleri aşırı tanımlama hakkında daha fazla bilgi için operatörler aşırı.)

Ayrıca bkz.

Başvuru

Standart dönüşümler