const_cast
読み:コンスト-キャスト
外語:const_cast
C++の予約語の一つ。
特徴
次の形で、型キャスト(型変換)に用いる。
const_cast <型> (変数)
対象変数のconstおよびvolatile修飾子を外す働きを持つ。それ以外はコンパイル時にエラーとなる。
用途
C++では、非constからconstへの型キャストは暗黙で行なわれるが、その逆は明示的な型キャストが必要である。
これを無視してconstから非constへの変換をしようとしても、コンパイルエラーが発生する。
もし、このようなことをしたい場合、C++ではconst_cast演算子を使う。
int *p = 123;
const int *cp = 456;
p = const_cast<int*>(cp);
通常、constは書き換えられたくない関数の引数などに使われる。これを強引に書き換える場合、その影響も考慮に入れなければならない。
再検索