mjv*_*mjv 11
RTTI,运行时类型信息,为C++引入了[温和]反射形式.
它允许知道例如超类的类型,因此允许处理全部来自相同基类型的对象的异构集合.以特定于各个超类的方式.(假设您有一个"车辆"对象数组,并且需要与在阵列中找到的"卡车"对象进行不同的处理).
然而,RTTI是否必要的问题是一个开放的问题.故事是Bjarne Stroustrup故意将此功能从原始的C++规范中排除,因为担心它会被滥用.
确实存在过度使用/滥用反射功能的机会,而这在C++最初引入时可能更为重要,因为在主流程序员社区中没有这样的OOP文化.
这说,有了更多OOP精明的社区,有效地展示了反思可以做的所有好事(例如,使用Java或C#等语言)以及现在使用的花哨的设计模式,我坚信RTTI和反思即使有时被误用,大部分功能也非常重要.