web-dev-qa-db-ja.com

「警告:古いスタイルのキャストの使用」g ++

可能性のある複製:
static_cast、dynamic_cast、およびreinterpret_castはいつ使用する必要がありますか?

このC++コードを使用すると、

char* a = (char*) b;

警告warning: use of old-style cast

新しいスタイルのキャストは何ですか?

34
prosseek

reinterpret_caststatic_castdynamic_castおよびconst_castはc ++キャストの代替です。

  • const_cast const変数からconst/volatileを削除します。
  • dynamic_castポリモーフィック型間でキャストするときに実行時の妥当性チェックを実行します
  • static_cast継承階層でアップキャスト/ダウンキャストを実行しますが、ランタイムチェックは行いません。または、暗黙的に変換を明示的に実行します(たとえば、floatからintへ)
  • reinterpret_cast無関係な型の間で変換します。
47
Erik

このトピックを読んで、さまざまなフレーバーのC++スタイルのキャストについて知ってください。

static_cast、dynamic_cast、const_cast、reinterpret_castはいつ使用する必要がありますか?

4
Nawaz