C++四种类型转换总结
C风格的强制类型转换很简单,均用 Type b = (Type)a 形式转换。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用,如下表:
转换类型操作符 | 作用 |
const_cast | 去掉类型的const或volatile属性 |
static_cast | 无条件转换,静态类型转换 |
dynamic_cast | 有条件转换,动态类型转换,运行时检查类型安全(转换失败返回NULL) |
reinterpret_cast | 仅重新解释类型,但没有进行二进制的转换 |
1、const_cast
去掉类型的const或volatile属性
const int* p; //p可变,p指向的内容不可变
int const* p; //p可变,p指向的内容不可变
int* const p; //p不可变,p指向的内容可变
const修饰函数返回值表示返回值不可改变,多用于返回指针的情形
volatile可理解为编译器警告指示字
volatile用于告诉编译器必须每次去内存中取变量值
volatile主要修饰可能被多个线程访问的变量
volatile也可以修饰可能被未知因数更改的变量
1、常量