我正在使用 OGRE,但我遇到了一个与 ORGE 无关的问题,而是我正在处理的一个典型的 C++ 问题。ORGE 只是帮助解决问题的上下文。
有一个宏,例如
OGRE_DELETE_T(obj, ExternalClass);
但是,为了调用 delete,我需要传入类的类型作为第二个参数。但是,比如说我有一个 base class A
,然后class B
, class C
,class D
等。如果我只存储一个std::vector
指针A
,但实际上我可能已经将它们实例化为B
,C
或 的一些衍生物A
,我怎么能传递构造到这个宏中的实际类?当我去删除它时,我不知道派生对象是什么类型,我只知道有class A
指针。
我想也许使用dynamic_cast
,但是我不喜欢运行时性能,我还需要某种类型的查找表来检查。