如果我要创建一个名为的基类和名为的派生base
类等...我使用基类的实例集合,那么当我检索一个元素并尝试使用它时,我会发现 C++ 认为它的类型是基类的,可能是因为我从基类中检索到它。当我想使用仅存在于特定派生类的功能时,这是一个问题,当我将它放入向量时,我知道该对象的类型。derived_1
derived_2
std::vector
所以我将元素转换为它应该是的类型,发现这不起作用。
(derived_3)obj_to_be_fixed;
并记住这是一个指针。经过一些调整后,现在工作了。
*((derived_3*)&obj_to_be_fixed);
这是正确的还是有一个abc_cast()
功能可以减少混乱?
编辑:
我不得不将其扩展到另一个问题,那里显示了完整的解决方案。stackoverflow.com ...为什么多态类型错误和清理问题