const_cast<new_type>(expr) 例子
时间: 2023-11-27 09:52:21 浏览: 68
类型转换操作符:static_cast,dynamic_cast,const_cast,reinterpret_cast.
5星 · 资源好评率100%
假设有以下代码:
```c++
void print(char* str) {
std::cout << str << std::endl;
}
const char* c_str = "Hello World";
print(const_cast<char*>(c_str));
```
这段代码定义了一个函数`print`,它接受一个`char*`类型的参数,并将其输出到标准输出流。然后定义了一个常量字符指针`c_str`,它指向字符串常量"Hello World"。由于`print`函数接受的是一个非常量指针,因此不能直接将`c_str`传递给它。这时就可以使用`const_cast`来将`c_str`转换为非常量指针,如上面的代码所示。
需要注意的是,使用`const_cast`来修改一个本来应该是常量的对象是一种不安全的行为,因为这样可能会导致不可预测的行为或者程序崩溃。只有在确保修改不会对程序产生负面影响的情况下才应该使用`const_cast`。
阅读全文