首页 > 编程语言 > 详细

c++数据类型转换

时间:2020-07-06 22:11:27      阅读:54      评论:0      收藏:0      [点我收藏+]

1. static_cast   static_cast<type-id> (expression)。

    不做任何类型检测,直接转换,不保证安全性。可用于基本数据类型和指针的转换。

    如果expression有带属性,如const,volatile、或者__unaligned属性,不能转换。

    这个转换和用()里面加类型强制转换用法差不多,用static_cast可以更好的定位哪里的变量有进行类型转换。

2. const_cast    const_cast<type-id> (expression)。

   可以转换带有const和volatile的指针和其引用。

3. reinterpret_cast   reinterpret_cast<new_type> (expression)。(重解释转换)

   这是一种非常不安全的转换机制,最有可能出问题。

   这个转换时讲一个对象假想为完全不同的类型,和原来的类型拥有相同的比特位。

4. dynamic_cast    dynamic_cast<type-id> (expression) 

   这是一种安全的类型转换,运行时会进行类型检测。

   express必须为指针或者引用,且类中必须有虚函数才能编译通过。

5. boost库提供了一个lexical_cast  转换

    可用于基本类型的数据转换,字符串,整形浮点之间相互转换。

6. implicit_cast和down_cast  

   上行转换时可使用implicit_cast代替static_cast  因为编译器会做类型安全检测。

   下行转换时可用down_cast是替换dynamic_cast。

 

c++数据类型转换

原文:https://www.cnblogs.com/lingqingyu/p/13257842.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!