zoukankan      html  css  js  c++  java
  • 是否含有RTTI(运行时类型信息)是动态语言与静态语言的主要区别

    运行时类型信息代表类型信息和对内存的操作能力。

    运行时类型信息是运行时系统的基础。

    类型信息分为编译时类型信息和运行时类型信息两种;

    静态语言的类型信息只在编译时使用和保留,在可执行文件中没有类型信息;

    类型信息只用于编译时的类型检查、函数绑定等

    类型信息:从编译到运行

    1、静态语言:从编译到运行类型信息全部消除;

    2、弱动态语言:从编译到运行,类型信息选择性的保留;

    3、动态语言:类型信息全部保留(oc的isa、java的class)。

    c++的RTTI实现

    编译器会为每一种typeid操作的类型生成一份保存在数据段的type_info数据。

    https://blog.csdn.net/passion_wu128/article/details/38441633

    dynamic_cast转换符只能用于指针或者引用。dynamic_cast转换符只能用于含有虚函数的类。dynamic_cast转换操作符在执行类型转换时首先将检查能否成功转换,如果能成功转换则转换之,如果转换失败,如果是指针则反回一个0值,如果是转换的是引用,则抛出一个bad_cast异常,所以在使用dynamic_cast转换之间应使用if语句对其转换成功与否进行测试,比如pd=dynamic_cast<D*>(pb); if(pd){…}else{…},或者这样测试if(dynamic_cast<D*>(pb)){…}else{…}。

    http://www.cnblogs.com/tgycoder/p/5427303.html

  • 相关阅读:
    抓老鼠啊,亏了还是赚了
    币值转换
    2019春第七周作业
    2019春第六周作业
    2019春第五周作业
    2019年春季学期第四周作业
    2019年春季学期第三周作业
    2019年春季学期第二周作业
    在人生路上对我影响最大的三位老师
    第七周作业
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10406998.html
Copyright © 2011-2022 走看看