在C++里,把常量指針(即指向長臉的指針)賦值給非常量指針時,會提示錯誤,這時候就需要用到const_cast,看下面的兩個轉換情形:
int j = 0;
const int i = j;
int &k = const_cast<int &>(i);
k++;
printf("%d", i);
string a = "123";
char *p = const_cast<char*>(a.c_str());
strcpy(p, "abc");
printf("%s", a.c_str());
結果是常量被修改了,這是可以去除常量的辦法。