整數提升
整數類資料型別的物件可以轉換為另一個寬整數型別 (也就是可以代表較大的一組值的類型)。 這類擴展轉換稱為 「"整數提升。 整數提升,您可以使用下列運算式中的任何其他整數類資料型別可以用於:
物件、 常值和型別的常數char ,short int
列舉型別
int位元欄位
列舉程式
C + + 促銷是"值保留。" 也就是在升級後的值一定會在升級前的值相同。 值保留的促銷活動、 短整數類資料型別的物件中 (例如位元欄位或物件型別的char) 會升階到輸入int如果int可以代表的全部範圍的原始型別。 如果int無法表示完整的值範圍,則物件會提升至輸入unsigned int。 雖然這項策略是使用 ANSI C 的相同,則值保留的轉換將不會保留"signedness"的物件。
值保留的促銷及促銷,保留 signedness 通常會產生相同的結果。 不過,它們會產生不同的結果,如果升級的物件是下列其中一項:
An operand of /, %, /=, %=, <, <=, >, or >=
這些運算子會依賴用來判斷結果的正負號。 因此,值保留,並正負號保留的促銷活動會產生不同的效果,當您套用到這些運算元。
左邊的運算元 >> 或 >> =
這些運算子以不同方式將帶正負號和不帶正負號的數量,執行移位運算時。 帶正負號的數量,移位量權限會傳播到空出的位元位置的正負號位元。 為不帶正負號的數量,空出的位元位置會由零填滿。
若要多載函式或 signedness 的引數符合該運算元的型別而定的多載運算子的運算元之引數。 (請參閱多載運算子如需定義多載運算子。)