UCSC -- C++ スタイルのキャストを使用(Use C++ Style Casts)
C++ 検査 への移動
説明
検査では、C スタイルのキャストがないかを確認します。これは使用しないことをお勧めします。 C++ 言語には固有のキャスト演算子がいくつかあるので、代わりにそちらの方を使用してください。 これらの演算子は、C スタイルのキャストにつきものの多義性や危険性を取り除くことを目的としています。 具体的には次の演算子です。
- dynamic_cast — 多態型の変換に使用します。
- static_cast — 多態型以外の型の変換に使用します。
- const_cast — const 属性および volatile 属性を取り除くために使用します。
- reinterpret_cast — 単純にビットを解釈しなおすために使用します。
C スタイルのキャストではなく、ここで挙げた C++ 演算子を使用してください。 ただし、const_cast と reinterpret_cast はできるだけ使わないようにします。 これらの演算子は、C スタイルのキャストと同じ危険性を含んではいますが、C スタイルのキャストを完全に置き換えるためには必要です。
誤った例
return (Cat*)myAnimalPtr;
正しい例
return dynamic_cast<Cat*>(myAnimalPtr);