多くの C および C++ 演算子によって、 式の型を変更する暗黙の型変換 が行われます。 異なるデータ型の値を足す時、まず、両方の値を共通の形式に変換します。 例えば、short int の値と int の値を加算する場合、short int の値を int 型に変換します。 オリジナルのオブジェクトの値が、より短い型によって表すことができる範囲を超えている場合、 データの損失が生じます。
暗黙の型変換は、以下の場合に行われます。
C スタイル・キャスト、C++ 関数スタイル・キャスト、または C++ キャスト演算子 の 1 つを使用して、 明示的な型変換を行うことができます。
#include <iostream> using namespace std; int main() { float num = 98.76; int x1 = (int) num; int x2 = int(num); int x3 = static_cast<int>(num); cout << "x1 = " << x1 << endl; cout << "x2 = " << x2 << endl; cout << "x3 = " << x3 << endl; }
次に、上記の例の出力を示します。
x1 = 98 x2 = 98 x3 = 98
整数 x1 には、C スタイル・キャストを使用して 明示的に num を int に変換した値が代入されます。整数 x2 には、関数スタイル・キャストを使用して変換された値が代入されます。 整数 x3 には、static_cast 演算子を使用して変換された値が代入されます。
関連参照