C ++キャスト演算子
キャストオペレータは、別のデータ型へのデータ型に変換する特殊な演算子です。 キャスト演算子は、優先順位と他の単項演算子と同じ、単項演算子です。
ほとんどのC ++コンパイラは、最も一般的なキャスト演算子をサポートしています。
(type) expression
ここでは、タイプは、変換後のデータ型です。 ここではいくつかの他のキャスト演算子C ++のサポートは、次のとおりです。
const_cast <タイプ>(expr)は:はconst_cast演算子は定数/揮発性プロパティのタイプを変更するために使用されます。constまたはvolatile属性に加えて、ターゲットはソース型と同じ型でなければなりません。 このタイプの変換は、主に次の定数は、const属性を除去する属性を追加することができ、操作の定数オブジェクトの属性を転送するために使用されます。
dynamic_castを<タイプ>(expr)は: dynamic_castを、変換する変換の妥当性を検証するために実行時に実行されます。変換が実行されない場合は、変換が失敗した、式exprがnullであると判断されます。 動的変換を実行するのdynamic_castすると、型は型がクラスのポインタ型であれば種類はexprが、参照でなければならないという基準である場合、exprは、ポインタでなければなりません、クラスのポインタまたは参照void *型でなければなりません。
reinterpret_castは<タイプ>(expr)は: reinterpret_castはポインタのいくつかの他の型へのポインタに演算子。それはあなたがポインタに整数を置くことができ、整数へのポインタであることができます。
static_cast <タイプ>(expr)は: static_castをオペレータが実行されていない変換の安全性を確保するために、非動的変換、クラスチェックを実行します。例えば、派生クラスのポインタに基本クラスのポインタに変換するために使用することができます。
クラスとオブジェクトの使用上記のキャスト演算子のすべてが使用されます。 さて、C ++、単純なキャスト演算子を使用する方法を理解するには、次の例を考えてみましょう。 コピーは、ファイルをTEST.CPPコンパイルし、プログラムを実行するには、次のC ++プログラムを貼り付け。
#include <iostream> using namespace std; main() { double a = 21.09399; float b = 10.20; int c ; c = (int) a; cout << "Line 1 - Value of (int)a is :" << c << endl ; c = (int) b; cout << "Line 2 - Value of (int)b is :" << c << endl ; return 0; }
上記のコードはコンパイルされ、実行されると、次の結果を生成します。
Line 1 - Value of (int)a is :21 Line 2 - Value of (int)b is :10