ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

const_cast演算子

const_cast演算子はconst属性を取り除くのに使える。

#include <iostream>
using namespace std;

void func(const int* p)
{
    int* a;
    a = const_cast<int*>(p);
    *a = 123;
}

int main()
{
    int a = 100;
    func(&a);
    cout << a << endl;
}

constをわざわざ付けているのは意味があるわけで、それを取り除いてしまうということはよっぽどの理由がない限りは使うべきでないだろう。
それよりもどうしてconstを取り除いて使いたくなったかコードを見直して設計をやり直したほうが良いだろう。