const_cast

http://www.geocities.jp/ky_webid/cpp/language/024.html

これは単純です。名前の通り、constを無効化するためのキャストです。一応volatileも無効化されるみたいなのですがもともとあまり使わないと思うのでまあ知っておいてね程度で良しとします。

実際に書いてみます。

#include <iostream>
using namespace std;

int main () {
    int num = 100;
    const int* p1 = &num;
    int* p2 = const_cast<int*>( p1 );
    
    *p2 = 200;
    
    cout << *p2 << endl;
    
    return 0;
}

このコード自体にはあまり意味はありませんね。num変数が同じスコープないで見えているので。

関数に渡されたconst int*型をたとえば内部で書き換え可能なint*型に変えてしまうとかありえます。まあでも本来のconstの意味から考えるとあまり、書き換え可能にキャストするのは考え物ですが。