C++のキャストのまとめ。
static_cast
intやfloatなどの変換に使うキャスト。型変換が行われる。Cでのキャストと同じようなもの。
reinterpret_cast
単なる型変更のキャスト。型変換は行われない。ポインタと整数を変換するとか、ある型のポインタから別の型のポインタにするときに使う。
const_cast
const属性を外すときに使う。基本的にこれが必要になったら設計を見なおしたほうが良い。
dynamic_cast
正しくキャストできるときにはキャストし、できないときはnullを返す。ある派生クラスのオブジェクトを親クラスのポインタで受け取ったとき、派生クラスへとdynamic_castできれば、その派生クラスであると知ることができる。
C++でキャストするときも、ついつい括弧を使ったC言語のキャストを使ってしまう。出来る限り、これらのキャストを使うようにしよう。一番の利点は検索して見つけやすいということ。