const转换到非const 或从volatile转换为非volatile,可以使用const_cast
唯一允许的转换
进行别的转换就可能要使用单独的表达式
或者得到一个编译错误
如果取得了const对象的指针,可以生成一个指向const的指针
不用转换是不能给非cosnt指针赋值的
旧形式的转换能实现这样的赋值
唯一允许的转换
进行别的转换就可能要使用单独的表达式
或者得到一个编译错误
如果取得了const对象的指针,可以生成一个指向const的指针
不用转换是不能给非cosnt指针赋值的
旧形式的转换能实现这样的赋值
但是const_cast是适用的
//: C03:const_cast.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
int main() {
const int i = 0;
int* j = (int*)&i; // Deprecated form
j = const_cast<int*>(&i); // Preferred
// Can't do simultaneous additional casting:
//! long* l = const_cast<long*>(&i); // Error
volatile int k = 0;
int* u = const_cast<int*>(&k);
} ///:~
无输出