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转指针,可能会出现问题,尽量少用。

  • 相关阅读:
    开源ITIL管理软件iTop 2.5-2.6安装
    并发服务器
    套接字通信
    libevent
    gdb调试
    值得收藏的技术社区
    关于博客园随笔编辑页面内容不刷新(空白)的问题解决
    嵌入式Web框架
    内存地址的传递问题
    linux文件缓冲区
  • 原文地址:https://www.cnblogs.com/yichengming/p/11459059.html
Copyright © 2011-2022 走看看