Integralną promocje
Obiekty typu integralną można konwertować na inny typ integralną szersze (to znaczy typu, który może reprezentować większy zestaw wartości).To poszerzanie typ konwersji nazywa się "integralną Promocja". Tam, gdzie można użyć innego typu integralną integralną promocji, można użyć następującego wyrażenia:
Obiekty, literały i stałe typu char ishort int
Wyliczanie typów
intpola bitowego
Moduły wyliczające
Promocje C++ są "wartość zachowaniu." Oznacza to, że wartość po promocji jest gwarantowane jest taka sama jak wartość przed awansem.W zachowaniu wartość promocjach obiektów krótszy integralną typów (takich jak pola bitowe lub obiektów typu char) były promowane wpisz int Jeśli int może reprezentować pełnego zakresu oryginalnego typu.Jeśli int nie może reprezentować pełen zakres wartości, a następnie obiekt jest podnoszony do wpisz unsigned int.Mimo, że strategia ta jest taka sama, jak te stosowane przez ANSI C, zachowywanie wartości konwersji nie zachowuje "signedness" obiektu.
Promocje i promocji, które normalnie zachowania signedness zachowania wartości produkują takie same wyniki.One jednak wygenerować różne wyniki, jeśli promowanych obiekt jest jedną z następujących czynności:
An operand of /, %, /=, %=, <, <=, >, or >=
Te podmioty gospodarcze polegać na znak określania wynik.W związku z tym zachowywanie wartości i zachowywanie znak promocji wygenerować różne wyniki, gdy jest stosowany do tych operandów.
Lewy operand z >> lub >> =
Te podmioty gospodarcze inaczej traktują ilości podpisane i niepodpisane podczas wykonywania operacji shift.Ilości podpisane przesuwanie prawo ilość powoduje bitem znaku, być propagowane do zostały zasiedlone pozycjach.Niepodpisane ilości zostały zasiedlone pozycjach są wypełnione przez zero.
Argument funkcji zastąpionej lub operand przeciążonego operatora, który zależy od signedness typu tego operandu dla argumentu dopasowania.(Zobacz Przeciążone operatory Aby uzyskać więcej informacji o definiowaniu przeciążone operatory.)