1. C风格的强制转换
C风格的强制转换(Type Cast)容易理解,不管什么类型的转换都可以使用使用下面的方式.
TypeName b = (TypeName)a;
2. C++ 四种强制转换类型函数
2.1 const_cast
1、常量指针被转化成非常量的指针,并且仍然指向原来的对象;
2、常量引用被转换成非常量的引用,并且仍然指向原来的对象;
3、const_cast一般用于修改指针。如const char *p形式。
const_cast<>里边的内容必须是引用或者指针,就连把 int 转成 int 都不行。
#include<iostream>
int main() {
const int c_val = 233; //声明为常量类型
int &use_val = const_cast<int&>(c_val); //使用去const 引用
int *ptr_val = const_cast<int*>(&c_val);//使用去const 指针
use_val = 666; //未定义行为
std::cout << c_val << "\t" << use_val << "\t" << *ptr_val << std::endl;
*ptr_val = 110; //未定义行为
std::cout << c_val <<