最近看了一点关于MFC中RTTI(Run Time Type Information)的原理,我个人理解 是否就是在自CObject派生的每一个类中都添加一个能够记载该类所有信息的结构体,其类型为CRuntimeClass?但是源代码中   #define DECLARE_DYNAMIC(class_name) \
     public: \
     static CRuntimeClass class##class_name; \
     virtual CRuntimeClass* GetRuntimeClass() const;
不就意味这这个结构体是静态变量么? 那么它就应该是所有类所共有的,对么?我觉得如果每个类都有其自身的这个结构变量不是更好?为什么要设置成静态的呢?
同样道理为什么在宏     #define DECLARE_DYNCREATE(class_name) \
                       DECLARE_DYNAMIC(class_name) \
                       static CObject* PASCAL CreateObject();
里面仍然使用静态的成员函数呢? 如果不用静态的行不行呢? 还有哪个PASCAL是什么意思啊?                                    谢谢指教。