最初宣称为混乱

时间:2014-06-25 04:41:34

标签: c++ const const-cast

  

const_cast只有在您投射最初为非const的变量时才是安全的。

文字是唯一最初声明为常量的数据吗?如果没有,请问给出最初声明的const数据场景的例子吗?

1 个答案:

答案 0 :(得分:4)

不,不仅文字最初被声明为const。 声明为const的任何对象是"最初是const"。

const int this_is_a_const_int = 10;
const std::string this_is_a_const_string = "this is a const string";

std::string this_is_not_a_const_string;
std::cin >> this_is_not_a_const_string;

const std::string but_this_is = this_is_not_a_const_string;

int n;
std::cin >> n;

const int & const_int_ref = n;
int& int_ref = const_cast<int&>(const_int_ref); // this is safe, because const_int_ref refers to an originally
                                                // non-const int