https://www.jb51.cc/csharp/1193394.html

编程之家收集整理的这篇文章主要介绍了C++中的四种强制类型转换_基本用法及使用场景编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

C中的类型转换:

事情要从头说起,这个头就是C语言.我们已经习惯了使用C-like类型转换,因为它强大而且简单.

主要有一下两种形式:

C风格的转换格式很简单,但是有不少缺点:

1.转换太过随意,可以在任意类型之间转换。你可以把一个指向const对象的指针转换成指向非const对象的指针,把一个指向基类对象的指针转换成一个派生类对象的指针,这些转换之间的差距是非常巨大的,但是传统的C语言风格的类型转换没有区分这些。

2.C风格的转换没有统一的关键字和标示符。对于大型系统,做代码排查时容易遗漏和忽略。

C++中的类型转换:

C++风格完美的解决了上面两个问题。1.对类型转换做了细分,提供了四种不同类型转换,以支持不同需求的转换;2.类型转换有了统一的标示符,利于代码排查和检视。下面分别来介绍这四种转换:static_cast、dynamic_cast、const_cast和reinterpreter_cast.

一、static_cast转换

1.基本用法:static_cast expression

2.使用场景