美文网首页
运行时类型识别( Run-Time Type Informati

运行时类型识别( Run-Time Type Informati

作者: 吃柠檬的鸮 | 来源:发表于2019-05-29 23:45 被阅读0次

    定义: RTTI 允许程序员在运行时识别C++类对象的类型。
    优点:
    RTTI在某些单元测试中非常有用,如在进行工厂类测试时用于检验一个新建对象是否为期
    望的动态类型。
    除测试外,极少用到。
    缺点:运行时识别类型意味著设计本身有问题, 如果你需要在运行期间确定一个对象的类型,
    这通常说明你需要重新考虑你的类的设计。
    结论:
    除单元测试外, 不要使用RTTI, 如果你发现需要所写代码因对象类型不同而动作各异的话,
    考虑换一种方式识别对象类型。
    虚函数可以实现随子类类型不同而执行不同代码,工作都是交给对象本身去完成。
    如果工作在对象之外的代码中完成,考虑双重分发方案,如Visitor模式,可以方便的在对
    象本身之外确定类的类型。
    如果你认为上面的方法你掌握不了,可以使用RTTI,但务必请三思,不要去手工实现一个
    貌似RTTI的方案( RTTI-like workaround) ,我们反对使用RTTI,同样反对贴上类型
    标签的貌似类继承的替代方案

    相关文章

      网友评论

          本文标题:运行时类型识别( Run-Time Type Informati

          本文链接:https://www.haomeiwen.com/subject/hxrptctx.html