RTTI是"Runtime Type Information"的縮寫,意思是:運行時類型信息.它提供了運行時確定對象類型的方法.
最近在寫的一些東西,不想使用MFC之類的框架,但是卻在很多地方需要根據名稱確定指針的轉換類型或者利用抽象工廠生產抽象的類對象指針...
我很不喜歡不容易維護且難看的"switch case",而C++本身的RTTI功能又顯得很單薄...看來只有自己寫一個C++的RTTI實現了.
RTTI.h:
RTTI.cpp:
在"struct TypeInfo"中我用到了許式偉的StdExt庫,若要單獨使用的話需要把"Map"改爲"map",即使用stl的map完成同樣的功能,並刪除掉帶有"GCAlloc"的語句.
此RTTI在使用上類似MFC的RTTI,所有需要用到RTTI功能的類必須繼承自"class CBaseObj".
使用示例:
Show.h:
Show.cpp: