【发布时间】:2012-04-22 09:04:37
【问题描述】:
我正在使用 OGRE,但我遇到了一个与 ORGE 无关的问题,而是我正在处理的一个典型的 C++ 问题。 ORGE 只是帮助解决问题的上下文。
有一个宏,例如
OGRE_DELETE_T(obj, ExternalClass);
但是,为了调用 delete,我需要传入类的类型作为第二个参数。但是,假设我有一个基本 class A,然后是 class B、class C、class D 等。如果我要存储一个 std::vector 的 A 指针,但实际上我可能有将它们实例化为B、C 或A 的一些派生词,我如何将构造的实际类的类型传递到这个宏中?去delete的时候不知道派生对象是什么类型,只知道有class A指针。
我想也许可以使用dynamic_cast,但是,我不喜欢运行时性能,我还需要某种类型的查找表来检查。
【问题讨论】: