page contents

C ++ 基础篇之数据的四种类型转换

在C语言中,类型转换是用括号强制变换的,C++语法排除了...

前言

在C语言中,类型转换是用括号强制变换的,C++语法排除了这种粗暴的做法,定义了用于4种类型转换的模板类。演员阵容,dynamic cast和reinterpret cast,把类型转换时的安全检查作为目的。看看这些怎么用吧。


1 static_cast

要点:

  • 基本数据类型之间的转换

  • 指向指向指向或转换的引用类别。


attachments-2021-04-g8UXKpuc606feea1b090f.png

static.分配角色类型转换结果


2 dynamic_cast

  • 用于派生类指针或引用与基准指针或引用之间的转换。

  • 可以向上转换和向下转换。前提是必须使用public或protected继承。

    attachments-2021-04-WD4ihddC606fef9fdf049.png


dynaminc_cast 类型转换结果

需要注意的是,上述指针 p 是无效的,而 p2 才是从基类指针到派生类指针的 有效转换 


3 const_cast

  • 只删除指针或引用,或添加const属性。

  • 不能用于不同类型之间的转换。只能变更相同类型的const属性。

attachments-2021-04-29Vtb5kz606fefe5afb9d.png

const cast类型转换结果


4 reinterpret_cast

您可以忽略类型,将任意两种类型之间的变量相互转换。

attachments-2021-04-w8CeTZFa606ff0259735f.jpg

  • 发表于 2021-04-08 20:43
  • 阅读 ( 734 )
  • 分类:C/C++开发

0 条评论

请先 登录 后评论
小柒
小柒

1312 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1312 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章