这是MFC的序列化框架的实现手法而已。就是用一些宏技巧搭配其它的代码来能够实现较为复杂的RTTI(运行时类型信息)。
一般情况下不必关注这个,除非你想了解MFC框架的底层。
它的本质就是MFC的序列化要求所有类都有一个CreateObject的静态方法用于创建自身。同时每个类都要求维护一个静态的CRuntimeClass对象,用于保存这个类的类型信息以便运行时动态查询。
DECLARE_DYNCREATE这个宏就是使用了一些技巧,来完成以上东西的定义,每个类里面加入这一句宏就可以完成上述的要求而不必自己手动写了。
基本上任何C++的RTTI框架或者序列化框架都有类似的手法,这方面钻下去有点深,如果不搞这方面的没必要看,真要看多了其实也就自己明白了。
就是声明了这个,能判断一个对象的类型.
例如class A,A a;
我们能知道a是A类型.
标签:C++,declare,dyncreate
版权声明:文章由 回答三 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.huidasan.com/life/57063.html