C++ 型変換
C++ 型変換
このチュートリアルでは、例を使用して C++ 型変換の基本について学習します。
C++ を使用すると、ある型のデータを別の型に変換できます。これは型変換として知られています。
C++ には 2 種類の型変換があります。
<オール>暗黙の型変換
コンパイラによって自動的に行われる型変換は、暗黙的な型変換として知られています。このタイプの変換は、自動変換とも呼ばれます。
暗黙の型変換の 2 つの例を見てみましょう。
例 1:int から double への変換
// Working of implicit type-conversion
#include <iostream>
using namespace std;
int main() {
// assigning an int value to num_int
int num_int = 9;
// declaring a double type variable
double num_double;
// implicit conversion
// assigning int value to a double variable
num_double = num_int;
cout << "num_int = " << num_int << endl;
cout << "num_double = " << num_double << endl;
return 0;
}
出力
num_int = 9 num_double = 9
プログラムでは、int
を割り当てています。 double
へのデータ
num_double = num_int;
ここでは、int
値は自動的に double
に変換されます num_double に割り当てられる前にコンパイラによって 変数。これは暗黙の型変換の例です。
例 2:double から int への自動変換
//Working of Implicit type-conversion
#include <iostream>
using namespace std;
int main() {
int num_int;
double num_double = 9.99;
// implicit conversion
// assigning a double value to an int variable
num_int = num_double;
cout << "num_int = " << num_int << endl;
cout << "num_double = " << num_double << endl;
return 0;
}
出力
num_int = 9 num_double = 9.99
プログラムでは、double
を割り当てています。 int
へのデータ
num_double = num_int;
ここでは、double
値は自動的に int
に変換されます num_int に割り当てられる前にコンパイラによって 変数。これも暗黙の型変換の例です。
注: int
以降 に小数部分を含めることはできません。上記の例では、小数点以下の桁が切り捨てられています。
変換中のデータ損失 (縮小変換)
上記の例からわかるように、あるデータ型から別のデータ型への変換では、データが失われる傾向があります。これは、大きな型のデータが小さな型のデータに変換されるときに発生します。
<図>C++ の明示的な変換
ユーザーがデータをあるタイプから別のタイプに手動で変更することを、明示的な変換と呼びます .このタイプの変換は、型キャストとも呼ばれます .
C++ で明示的な変換を使用するには、主に 3 つの方法があります。それらは:
<オール>C スタイルの型キャスト
名前が示すように、このタイプのキャストは C プログラミング言語 で好まれています。 . キャスト記法とも呼ばれます .
このスタイルの構文は次のとおりです:
(data_type)expression;
たとえば、
// initializing int variable
int num_int = 26;
// declaring double variable
double num_double;
// converting from int to double
num_double = (double)num_int;
関数スタイルのキャスト
function like 表記を使用して、ある型から別の型にデータをキャストすることもできます。
このスタイルの構文は次のとおりです:
data_type(expression);
たとえば、
// initializing int variable
int num_int = 26;
// declaring double variable
double num_double;
// converting from int to double
num_double = double(num_int);
例 3:型キャスト
#include <iostream>
using namespace std;
int main() {
// initializing a double variable
double num_double = 3.56;
cout << "num_double = " << num_double << endl;
// C-style conversion from double to int
int num_int1 = (int)num_double;
cout << "num_int1 = " << num_int1 << endl;
// function-style conversion from double to int
int num_int2 = int(num_double);
cout << "num_int2 = " << num_int2 << endl;
return 0;
}
出力
num_double = 3.56 num_int1 = 3 num_int2 = 3
C スタイルの型変換の両方を使用しました 型変換のための関数スタイルのキャスト そして結果を表示しました。これらは同じタスクを実行するため、どちらも同じ出力を返します。
型変換演算子
これらの 2 つの型キャストに加えて、C++ には型変換用の 4 つの演算子もあります。これらは型変換演算子として知られています .それらは:
static_cast
dynamic_cast
const_cast
reinterpret_cast
これらのキャストについては、後のチュートリアルで学習します。
推奨チュートリアル:
- C++ 文字列から int へ、およびその逆
- C++ 文字列から float、double へ、およびその逆
C言語