logo

C++ での型変換

このトピックでは、C++ プログラミング言語におけるあるデータ型から別のデータ型への変換について説明します。型変換は、1 つの変数の事前定義されたデータ型を適切なデータ型に変換するプロセスです。型変換の背後にある主な考え方は、2 つの異なるデータ型変数を 1 つのデータ型に変換して、データを損失することなく数学式や論理式を簡単に解決することです。

C++ での型変換

たとえば、2 つの数値を追加します。ここで、1 つの変数は int 型で、もう 1 つは float 型です。追加するには、int 変数を float に変換または型キャストして、両方の float データ型にする必要があります。

C++ では型変換は 2 つの方法で実行できます。1 つは次の方法です。 暗黙的な型変換 、そして2番目は 明示的な型変換 。これらの変換はコンパイラ自体によって行われ、暗黙的な型変換または自動型変換と呼ばれます。この変換はユーザーによって行われるか、明示的またはユーザー定義の型変換と呼ばれるユーザーの介入が必要です。 C++ における暗黙的および明示的な型変換について説明します。

暗黙的な型変換

暗黙的な型変換は、人間の努力を必要とせずにコンパイラによって自動的に実行される変換の種類です。これは、暗黙的な変換が、C++ コンパイラの事前定義されたルールに基づいて、あるデータ型を別の型に自動的に変換することを意味します。したがって、それは、 自動型変換

Javaの文字列と比較する

例えば:

 int x = 20; short int y = 5; int z = x + y; 

上の例では、2 つの異なるデータ型変数 x と y があり、x は int 型、y は short int データ型です。また、結果の変数 z も、x 変数と y 変数を格納する整数型になります。ただし、C++ コンパイラは、2 つの数値の合計を求める前に、下位のデータ型 (short int) の値を上位のデータ型 (int) に自動的に変換します。したがって、C++ の暗黙的な型変換におけるデータ損失、オーバーフロー、または符号損失が回避されます。

暗黙的な変換における型キャストの順序

以下は、下位ランクから上位ランクへのデータ型の正しい順序です。

 bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double 

暗黙的な型変換を使用して int を float 型に変換するプログラム

暗黙的な型変換を使用して、ランクの小さいデータ型を上位の型に変換するプログラムを作成してみましょう。

プログラム1.cpp

icloudの写真をアンドロイドに
 #include using namespace std; int main () { // assign the integer value int num1 = 25; // declare a float variable float num2; // convert int value into float variable using implicit conversion num2 = num1; cout << ' The value of num1 is: ' << num1 << endl; cout << ' The value of num2 is: ' << num2 << endl; return 0; } 

出力

 The value of num1 is: 25 The value of num2 is: 25 

暗黙的な型変換を使用して double データ型を int データ型に変換するプログラム

暗黙的な型変換を使用して、上位のデータ型を下位の型に変換するプログラムを作成してみましょう。

プログラム2.cpp

 #include using namespace std; int main() { int num; // declare int type variable double num2 = 15.25; // declare and assign the double variable // use implicit type conversion to assign a double value to int variable num = num2; cout << ' The value of the int variable is: ' << num << endl; cout << ' The value of the double variable is: ' << num2 << endl; return 0; } 

出力

 The value of the int variable is: 15 The value of the double variable is: 15.25 

上記のプログラムでは、num を整数型として宣言し、num2 を double データ型の変数として宣言し、num2 に 15.25 を割り当てました。この後、代入演算子を使用して num2 の値を num 変数に代入します。したがって、C++ コンパイラは、double データ値を num 変数に代入する前に自動的に整数型に変換し、切り捨て値を 15 として出力します。

明示的な型変換

必要な変換 ユーザー介入 ある変数のデータ型を別の変数に変更することを、 明示的な型変換 。言い換えれば、明示的な変換により、プログラマはデータ型をある変数から別の型に手動で変更またはタイプキャストすることができます。したがって、タイプキャストとも呼ばれます。一般に、明示的な型変換では、暗黙的な変換規則に従わないため、データをある型から別の型に変換します。

明示的な型変換は 2 つの方法に分かれています。

  1. キャスト演算子を使用した明示的な変換
  2. 代入演算子を使用した明示的な変換

Cast演算子を使ってfloat値をint型に変換するプログラム

キャスト演算子: C++ 言語では、キャスト演算子は、ある型を別の型に強制的に変換する単項演算子です。

xor cpp

C++言語の明示的変換のキャスト演算子を使ってfloatデータ型をint型に変換する例を考えてみましょう。

プログラム3.cpp

 #include using namespace std; int main () { float f2 = 6.7; // use cast operator to convert data from one type to another int x = static_cast (f2); cout << ' The value of x is: ' << x; return 0; } 

出力

 The value of x is: 6 

代入演算子を使用してあるデータ型を別のデータ型に変換するプログラム

C++ プログラムで代入演算子を使用して、ある変数のデータ型を別の変数に変換する例を考えてみましょう。

プログラム4.cpp

 #include using namespace std; int main () { // declare a float variable float num2; // initialize an int variable int num1 = 25; // convert data type from int to float num2 = (float) num1; cout << ' The value of int num1 is: ' << num1 << endl; cout << ' The value of float num2 is: ' << num2 << endl; return 0; } 

出力

 The value of int num1 is: 25 The value of float num2 is: 25.0