C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

static_cast、dynamic_cast、const_cast、およびreinterpret_castをC ++で使用する必要があるのはいつですか?


const_cast

constを削除したり、変数に追加したりするために使用できます。これは、変数から定数を追加/削除する必要がある場合に役立ちます。

static_cast

これは、通常/通常の型変換に使用されます。これは、暗黙の型強制の原因となるキャストでもあり、明示的に呼び出すこともできます。 floatをintに、charをintに変換する場合などに使用する必要があります。

dynamic_cast

このキャストは、ポリモーフィズムを処理するために使用されます。派生クラスにキャストする場合にのみ使用する必要があります。これは、基本クラスから派生クラスにキャストするときに継承でのみ使用されます。

reinterpret_cast

これは使用するのが最も難しいです。ビットパターンの再解釈に使用され、非常に低レベルです。これは主に、生データのビットストリームを実際のデータに変換したり、整列されたポインタの下位ビットにデータを格納したりするために使用されます。


  1. main()はCおよびC ++で何を返す必要がありますか?

    mainの戻り値は、プログラムがどのように終了したかを示すために使用されます。プログラムの実行が正常であった場合、0の戻り値が使用されます。異常終了(エラー、無効な入力、セグメンテーション違反など)は通常、ゼロ以外のリターンで終了します。ゼロ以外のコードの解釈方法に関する標準はありません。 ただし、独自のステータスコードを定義し、それらを使用してプログラムのさまざまなタイプの障害を表すことができます。 GCCは、終了信号の送信にstdlib.hで定義されているEXIT_SUCCESSまたはEXIT_FAILUREのいずれかを使用することをお勧めします。 C ++では、int main()は

  2. C ++で「友達」を使用する必要があるのはいつですか?

    クラスのフレンド関数はそのクラスのスコープ外で定義されていますが、クラスのすべてのプライベートメンバーと保護されたメンバーにアクセスする権利があります。フレンド関数のプロトタイプはクラス定義に表示されますが、フレンドはメンバー関数ではありません。 フレンドは、関数、関数テンプレート、メンバー関数、またはクラスまたはクラステンプレートにすることができます。この場合、クラス全体とそのすべてのメンバーがフレンドになります。 関数をクラスのフレンドとして宣言するには、次のように、クラス定義の関数プロトタイプの前にキーワードfriendを付けます- class Box {    d