C++的强制类型转换

C++有了四个强制类型转化的操作符。

1、static_cast

之前C语言会发生的隐式类型转化用此操作符,它适用于意义相近的类型之间的相互转化。

double d = 1.11;
int a = static_cast(d);

2、reinterpret_cast

用于无关类型的相互转换。

int a = 10;
int *p = reinterpret_cast(a);

3、const_cast

用于需要取消const属性的类型转换。

const int a = 2;
int *p = const_cast(&a);
*p = 3;

//*p 3,a 2的原因是cout<

4、dynamic_cast

用于父->子指针和引用的转换。它会先检查是否安全,不安全就返回nullptr。

子->父对象、指针和引用都支持,这是语法直接支持的,不是类型转换,不会产生临时变量。

你可能感兴趣的:(c++语法)