如何使用static_cast类型转换

  • 原创
  • |
  • 浏览:5342
  • |
  • 更新:

static_cast是C++的一种转换运算符,用于强制隐式转换,例如基类转换为子类,子类转换为基类,但是不同类之间是不能转换的。因此,本文告诉你如何使用static_cast进行类型转换,以便解决开发过程中的疑惑!

工具/原料

  • C++

方法/步骤

  1. 1

    首先定义实现两个类,一个基类,一个继承基类的子类

    如何使用static_cast类型转换
  2. 2

    然后再定义一个不相关的类CXYZPerson

    如何使用static_cast类型转换
  3. 2
    本页面未经许可获取自百度经验
  4. 3

    完成上面的定义和实现之后,定义基类和子类的对象,然后将指向子类的指针转换为指向基类的指针,这种情况是安全的,再将指向基类的指针转换为指向子类的指针,这种情况的安全性是不确定的,但是,以上两个方式都是允许的

    如何使用static_cast类型转换
  5. 4

    下面是对两个不相关的对象,即没有继承关系,进行static_cast转换

    如何使用static_cast类型转换
  6. 5

    通过编译可以发现出现如下图所示的错误,表示static_cast不允许不相关的类进行转换

    如何使用static_cast类型转换
  7. 6

    static_cast还可以对基础类型进行转换,例如下面将double转换int整型

    如何使用static_cast类型转换
  8. 7

    点击运行调试,可以看出double类型转换为整数之后,被截断了,只取整数的部分

    如何使用static_cast类型转换
  9. 8

    另外static_cast可以将void类型的指针转换为其他类型的指针

    如何使用static_cast类型转换
  10. 9

    点击运行调试,看出void类型的指针可以转换为其他类型的指针,并且输出的值是正确的

    如何使用static_cast类型转换
    END

注意事项

  • 喜欢经验欢迎点赞!
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部