ぼく用あれこれまとめ
reinterpret_cast演算子
最終更新:
bokuyo
-
view
reinterpret_cast演算
- 日本語で言うと、「強制キャスト」というらしい。
- 強制キャストは名前のごとく安全性がとてつもなく低い。
- そして、定義が処理系ごとに違うから移植性は保証されないの。
- できるだけ使わないで>< どうしてもってときだけ使ってね。
- 無関係なポインタ間、ポインタと整数型間などのcastを行う。
- void*へのcastは暗黙的に行われる。void*以外の値型へのポインタのcastする場合はreinterpret_cast。
- void*から他の値型へとcastする場合はstatic_castが使える。
reinterpret_cast演算子を使わずに、void*を経由したcastの仕方。
int main() { int unco = 0; int* eureka = &unco; //ここで初期化せず、適当な番地を入れてると void* renton = eureka; //キャスト時にランタイムエラーが発生する。 float* anemone = static_cast<float*>(renton); //こちらもランタイムエラーが発生する。 return 0; }