嗨 我已经开始研究一些由元素树组成的预先存在的代码,每个元素都是具有类型数据成员的通用元素的后代。
搜索功能返回一个通用元素,然后用户检查类型并可以向下转换为特定类型以访问其特定信息。
此代码适用于手机,因此使用大量 dynamic_casts 可能效率低下。
代码是新的,不是一成不变的,所以可以改进(不是我写的,我刚加入公司,正在研究它,所以不想完全拆开它)。
future 良好的设计/使用模式有哪些选择? (它的 C++ 但使用类型检查和原始 C 转换(以避免 dynamic_casts 的开销)似乎有点过时)。
例如,在基类中添加 CastToXXX() 类型的函数是否有任何优势?
派生类的类型很可能是固定的。
最佳答案
dynamic_cast
并没有那么慢,而且您可能无法做得更好。在寻找替代解决方案之前,分析并证明这是一个性能瓶颈。永远不要做任何事情,因为您可能在某处听说它可能很慢。
关于c++ - 使用安全向下转换的类设计选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5381690/