変換のC ++タイプ

まず、暗黙の型変換

INT、M = 3 + 45.6; //48.6000000000 48は、小数部分を切り捨て切り捨て

二、Cスタイルの明示的な型変換(キャスト)

// int型のk = 5%3.2;コンパイラのエラー

int型のk = 5%(INT) 3.2; // Cの言語のスタイルのキャストが、データが正しく転送することができることを確実にするために、プログラマが必要です
int型のk = 5%INT(3.2);(中キャスト1つのC言語スタイル)//関数スタイルのキャスト
int型= 5%K(int型) "DDDD"; // C言語スタイルのキャストが、結果は間違いなく間違っています
//そのC-スタイルは、安全でない型キャストをキャスト

三、C ++型変換

// C ++はCスタイルのキャストをサポートしていますが、4人のC ++のキャストを提供し、異なる目的のために使用された

、//目的は意味や機能の富を提供することでコードを書く容易にするために、よりよい型チェックメカニズムをおよびメンテナンス
1.static_cast 
2.dynamic_cast
3.const_cast
4.reinterpret_cast

4キャストの名前は「キャスト」と呼ばれています
1.static_cast:静的コンバータは(Cスタイルのキャストとして理解することができるが、コンパイラは、その合法性をチェックします)
//一般的な形態

//キャスト名<タイプ>(発現); 1.static_cast : 静的変換器は(必須のCスタイルの革命として理解することができる
変更するため、コンパイラは、その合法性をチェックします)
  それは使用することができます
    (このようなポイント型スイッチ整数を浮動など)変換の関連タイプ
    INT I = static_castを<整数> 100.0;
。Bサブクラス変換親クラス(継承)
ポインタと他のポインタ*とc.void変換(すべき)*ポインタvoid型をキャスト
  以下のために利用できる
   。一般的には、ポインタの異なる種類の間の変換のために使用されていません
2.dynamic_cast:主に使用検査実行時の種類を識別する。
これは主に(親サブタイプオブジェクトタイプへのポインタ)親のタイプとサブタイプの間で変換するために使用され

3.const_cast:除去ポインタまたは参照属性CONST(コンパイル時に型変換)は、異なるタイプの間で変換することができません
 
 
4. reinterpret_castは:(かかわらず、変換プロセスの種類の)再解釈粉砕してもよい、貧しいセキュリティ
  一般に、変換の両方のタイプのために使用される
整数変換へのポインタ。
他にポインタ型をB。ポインタの型。
C。整数へのポインタ

IVの概要

1.キャストが推奨されていない、それはコンパイラエラーを抑制します

2.は非常に危険なreinterpret_castは、const_castを使用することは、その設計上の欠陥を意味し、

3.あなたが本当にキャストする必要がある場合、C ++スタイルのキャストを使用する必要があります

4.はよくて、原則として長く使用することが望ましいreinterpret_castは

おすすめ

転載: www.cnblogs.com/sxgloverr1314/p/11517500.html