• dynamic_cast, static_cast, const_cast, reinterprt_cast浅析


    用法:dynamic_cast < type-id > ( expression )
    说明:Type-id必须是类的指针、类的引用或者void *;如果type-id是指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。
    dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。
    在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全。
    dynamic_cast要有虚函数,否则会编译出错;static_cast则没有这个限制。
     
    用法:static_cast < type-id > ( expression )
    说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。
    static_cast无所谓指针,替代c语言传统转换,编译时检查
     
    用法:reinpreter_cast<type-id> (expression)
    说明:type-id必须是一个指针、引用、算术类型、函数指针或者成员指针。
    reinterpret_cast必须有指针,编译时不检查
     
    用法:const_cast<type_id> (expression)
    说明:该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。
    const_cast只能应用于指针或引用类型。
  • 相关阅读:
    内部类
    四种权限修饰符
    final关键字
    多态
    关于接口
    c语言学习
    嵌入式-文件I/O
    嵌入式-基础三-打印-粘贴
    嵌入式-基础二
    嵌入式-基础一
  • 原文地址:https://www.cnblogs.com/kaishan1990/p/6425191.html
Copyright © 2020-2023  润新知