22万热度
·
·
·
2024/11/12 10:18:13
·
AI 摘要
前往原文
dynamic_cast 的实现依赖于 RTTI,所以总是让人觉得它性能不行,使用这个东西多半会有一种犯了大忌的感受。 1、如果继承关系比较简单,比如 rectangle、circle 派生自 shape,只有两层,那么可以使用 variant 来代替虚函数多态。using shape = std::variant<rectangle*, circle*>; 当需要 downcast 的时候,可以直接从variant的index来查询当前实际的对象,使用get_if来进行转型。 实际上,在这种简单的场景下,dynamic_cast的性能也并不差,虚表中有记录偏移量,我怀疑使用dynamic_cast进行转型应该和variant是差不多的。 2、 如果继承关系比较复杂,variant可能无法适应这样的场景,只好使用传统虚函数多态。如果需要用到dynamic_cast,那么貌似 visitor 模式可以消除掉这种可能,比如:struct Visitor; struct West { virtual void accept(Visitor &visitor) = 0; // ... }; s......
相关资讯
AI 摘要
dynamic_cast 的实现依赖于 RTTI,所以总是让人觉得它性能不行,使用这个东西多半会有一种犯了大忌的感受。 1、如果继承关系比较简单,比如 rectangle、circle 派生自 shape,只有两层,那么可以使用 variant 来代替虚函数多态。using shape = std::variant<rectangle*, circle*>; 当需要 downcast 的时候,可以直接从variant的index来查询当......
22万热度
·
·
·
2024年11月12日
·
AI 摘要
有一次因为晚了被升舱,之后都没有遇到过,想问怎么才可以升舱呢尤其乘坐国际航班的时候。
51万热度
·
·
·
2024年10月24日
·
AI 摘要
我是新高三学生。最近看到大批浙江文科生滑档的消息,我有点焦虑。特别看到很大一部分滑档的准备复读,我觉得这些学生也是很大的竞争对手。我已经不敢想2025浙江文科生,特别是像我这样的纯文的学生会怎么样。我的分数一直都在每次模考划的特控线上下,这会不会也受波及。想了解一下今年文科生录取的具体情况,实在是有点害怕。。
39万热度
·
·
·
2024年10月24日
·
相关榜单
热点推荐
换一批