C++语法(cast 转换)
$C++ $中 \(cast\) 转换
C++ 中四种类型转换是: \(static\_cast, dynamic\_cast, const\_cast, reinterpret\_cast\)
-
\(const\_cast\)
用于将\(const\) 变量转为非\(const\) 变量
-
\(static\_cast\)
用于各种隐式转换, 比如非\(const\) 转\(const\) , \(void^*\) 转指针等, \(static\_cast\) 能用于多态向上转化, 如果向下转换成功但是不安全, 结果未知;
-
\(dynamic\_cast\)
- 用于动态类型转换. 只能用于含有虚函数的类, 用于类层次间的向上线下转化. 只能转指针或引用. 向下转化时, 如果是非法的对指针返回 \(NULL\) , 对于引用抛异常. 要深入了解内部转换的原理.
- 向上转换: 指的是子类向基类的转换
- 向下转换: 指的是基类向子类的转换
它通过判断在执行到该语句的时候变量的运行时类型和要转换的类型是否相同来判断是否能够进行向下转换
-
\(reinterpret_cast\)
- 几乎什么都可以转换, 比如将int 转指针, 可能会出问题, 尽量少用

浙公网安备 33010602011771号