为什么我不能使用const_cast更改const数据的值(在我的情况下为int)

时间:2014-09-16 17:06:06

标签: c++ const-cast

我有一个程序,如下所示:

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    const int i = 100;
    cout<<"const i::"<<i<<endl;
    const_cast<int&>(i) = 200;
    cout<<"const i after cast::"<<i<<endl;
    return EXIT_SUCCESS;
}

但是i的值仍然是100. Aren的const_cast应该改变i的值吗?

1 个答案:

答案 0 :(得分:4)

根据其定义,常量数据常量,并且尝试更改常量数据会导致undefined behavior