zoukankan      html  css  js  c++  java
  • 面试问题之C++语言:说一说C++中四种cast转换

    C++中四种类型转换是:static_cast、dynamic_cast、const_cast、reinterpret_cast

    1、const_cast

      常量转换,用于将const变量转为非const

    2、static_cast

      用于各种隐式转换,比如非const转const,void*转指针等,static_cast能用于多态向上转化,如果向下转能成功但是不安全,结果未知。

    3、dynamic_cast

      用于动态类型转换。只能用于含有虚函数的类,用于类层次间的向上和向下转化。只能转指针或引用。向下转化时,如果是非法的对于指针返回NULL,对于引用抛异常。要深入了解内部转换的原理。

      向上转换:指的是子类向基类的转换

      向下转换:指的是基类向子类的转换

      它通过判断在执行到该语句的时候变量的运行类型和要转换的类型是否相同来判断是否能够进行向下转换。

    4、reinterpret_cast

      几乎什么都可以转,比如将int转指针,可能会出现问题,尽量少用。

  • 相关阅读:
    计算机组成原理学习总纲图
    USE RED
    既有的问题如何解决
    字符串极值题解
    扩展 KMP
    KMP
    FHQ-Treap
    STL
    iOS内存管理理论知识过一遍
    iOS中Block理论知识过一遍
  • 原文地址:https://www.cnblogs.com/yichengming/p/11459059.html
Copyright © 2011-2022 走看看