RTTI(运行时类型信息)是C++的一种机制,用于在运行时识别对象类型,支持多态性。主要操作符包括typeid和dynamic_cast。RTTI会增加二进制文件大小,可能暴露类信息,影响安全性和性能。禁用RTTI可以减小包体积并提高效率。
贝壳最近研究了下RTTI,发现几个有意思的事情。 dynamic_cast的应用。 dynamic_cast可以将一个指针的类型试图转换为指定的类型,是否能转换要看当前指针的动态类型是否是指定类型的子类,而不管指针的声明类型。当失败时返回NULL,因此可以用来识别一个指针的动态类型是否是某个类的子类。 typeid的应用。 typeid可以获得某个类的类型信息,最主要的就是name。指明了当...
完成下面两步后,将自动完成登录并继续当前操作。