Condividi tramite


Promozioni integrali

Gli oggetti di un tipo integrale possono essere convertiti in un altro più ampio tipo integrale (ovvero un tipo che può rappresentare un più ampio set di valori).Questo tipo di ampliamento di conversione viene chiamato “promozione integrali.„ Con la promozione integrali, è possibile utilizzare quanto segue in un'espressione ovunque un altro tipo integrale può essere utilizzato:

  • Oggetti, valori letterali e costanti char e short int

  • tipi di enumerazione

  • int campi di bit

  • Enumeratori

Le promozioni C++ “valore-stanno tenendo premuto.„ Ovvero il valore dopo che la promozione è sempre la stessa del valore prima della promozione.Nelle promozioni valore-mantenere, oggetti di più brevi tipi integrali (come campi di bit o oggetti di tipo char) vengono passati a nel tipo int se int può rappresentare la gamma completa di tipo originale.se int non può rappresentare l'intervallo di valori, l'oggetto viene promosso a digitare unsigned int.Sebbene questa strategia è identica a quella utilizzata dall'ANSI C#, valore-mantenente le conversioni non mantenere il “signedness„ dell'oggetto.

Valore-mantenendo le promozioni e le promozioni che mantengono i prodotti di signedness in genere gli stessi risultati.Tuttavia, possono produrre risultati diversi se l'oggetto promosso è uno dei seguenti:

  • un operando di o, %, /=, %=, <, <=, >, o >=

    Questi operatori si basano sul segno per la determinazione del risultato.Di conseguenza, valore-manteneree e segno-manteneree le promozioni producono risultati diversi una volta applicati a questi operandi.

  • l'operando sinistro di >> o >>=

    Questi operatori sono contenute quantità signed e unsigned in modo diverso quando esegue un'operazione di spostamento.Per quantità con segno, scorrere una destra della quantità fa sì che il bit di segno venga propagata in posizioni di bit liberate.Per quantità senza segno, le posizioni di bit liberate vengono compilate con zero.

  • Un argomento di una funzione o di un operando di overload di un operatore di overload che dipende dal signedness del tipo dell'operando per la corrispondenza dell'argomento.(Vedere operatori di overload per ulteriori informazioni sulla definizione degli operatori di overload.)

Vedere anche

Riferimenti

Conversioni standard