-2

重複の可能性:
通常のキャストとstatic_castとdynamic_cast

プログラミングを始めてから、Cのようなキャストを使用しています。

class* initializedClassInstance;
void* test = (void*) initializedClassInstance;

そして、C ++キャスト(static_cast、dynamic_cast ...)に慣れる必要があるとどこかで言われました。

どちらか一方を優先する理由はありますか(CスタイルよりもC ++)?静的キャストと動的キャストには違いがありますよね?しかし、それは何ですか?

ありがとう!

4

2 に答える 2

4

Cスタイルのキャストは安全ではありません。

C++スタイルのキャストは別の方法で動作します。static_castキャストできない場合は、コンパイルエラーが発生します。 dynamic_castポインタをキャストしている場合は失敗時にNULLにキャストし、そうでない場合は例外をスローします。

したがって、これにより、より安全なコードを記述できます。

于 2012-08-06T08:51:17.587 に答える
1

はいあります。それはあなたにチェックを与えます。static_castたとえば、コンパイル時のチェックとdynamic_cast実行時のチェックを提供します。

あなたはここでもっと読むことができますcasts

于 2012-08-06T08:48:52.127 に答える