在N3中, RTTI检查只是简单的指针比较. IsA()在类不匹配时可能会慢些, 因为它需要在继承树中遍历到根部. 这样一来, 最好使用IsInstanceOf()方法, 因为它只是一个指针比较....>& res = d3d9Tex.cast();
不安全的转换是最快的(在release模式中, 编译器会把这个调用优化掉), 但是很显然它会让你自作自受....当编写一个新类时, 可能会发生FourCC已经被占用的情况. 这时, 启动程序时会弹出一个这样的错误对话框:
修正冲突的办法是改变其中的一个FourCC代码并重新编译....另一个问题就是有些类没有在程序启动时注册, 因为它的静态RTTI对象的构造方法被链接器(linker)给”优化没了”. 这通常是因为没有实际的C++代码直接用到这个类....)
为了防止链接器抛弃某个类, 建议进行下面的处理:
在一个.h文件中集中加入__RegisterClass(MyClass)宏
在.cc文件中包含这个头文件.