c++ - 使用安全向下转换的类设计选项

标签 c++ oop

嗨 我已经开始研究一些由元素树组成的预先存在的代码,每个元素都是具有类型数据成员的通用元素的后代。

搜索功能返回一个通用元素,然后用户检查类型并可以向下转换为特定类型以访问其特定信息。

此代码适用于手机,因此使用大量 dynamic_casts 可能效率低下。

代码是新的,不是一成不变的,所以可以改进(不是我写的,我刚加入公司,正在研究它,所以不想完全拆开它)。

future 良好的设计/使用模式有哪些选择? (它的 C++ 但使用类型检查和原始 C 转换(以避免 dynamic_casts 的开销)似乎有点过时)。

例如,在基类中添加 CastToXXX() 类型的函数是否有任何优势?

派生类的类型很可能是固定的。

最佳答案

dynamic_cast 并没有那么慢,而且您可能无法做得更好。在寻找替代解决方案之前,分析并证明这是一个性能瓶颈。永远不要做任何事情,因为您可能在某处听说它可能很慢。

关于c++ - 使用安全向下转换的类设计选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5381690/

相关文章:

c++ - 对 vector 使用二进制搜索。

c++ - C 宏的标准合规性

php - 在数据映射器模式中创建对象数组

java - Java中的方法重载

c++ - 如何在C++中继承类?

c++ - 沿类层次结构的函数指针强制

c# - 卡包装器

c++ - 关于C++0x中右值的问题

java - Collections.sort 使用什么设计模式?

java - 在 JVM 规范中,也没有关于实例的表达式 "symbolic reference to an object"...我不明白