C ++の変換の4種類

1.はstatic_cast

など、フロート*、短いとint型、ダブル、int型、void *型とint型*としてサポート変換の唯一の関連タイプ、比較的安全、

特長:コンパイル時に変換

 

2. const_case

CONST発現修飾または揮発性修飾、CONST /不揮発性の変換CONST /揮発性タイプを削除する、など。

CONST  INT N = 100 INT * P =はconst_cast < INT *>(&N)。
* P = 234

整数nは元のメモリは、それが今、非変更の整数値であります

出力nの場合は、その値が類似します。#define CONST、一定の交換で進行するので、100です!

 

3. reinterpret_castは

static_castは、変換の種類を達成するためのサプリメント、リスクが高いです

このようなint型のポインタの変換、の2種類としてポインタ A *およびB *変換......不注意な使用は、アクセス違反を引き起こす可能性があります!

 

4.のdynamic_cast

のみ使用されるクラスの継承ポインタ:のような、好ましくは継承されたアップキャストアップの間の変換、

派生* PD = 新しい派生(6 ); 
ベースの* pB = dynamic_castを<ベース*>(PD)。

 

要約:

static_cast最も一般的で比較的安全、reinterpret_castはは、注意して使用し、危険なキャスト

const_castをのみのみ継承されたクラスのためのプロセスのdynamic_cast、const型変数に使用。

おすすめ

転載: www.cnblogs.com/Younger-Zhang/p/12132138.html