关于一个MFC的简单问题?在线等!!!!
当我定义一个类继承于CDocument:class CMyDoc:CDocument
{
DECLARE_DYNCREATE(CMyDoc)
}
问题来了,由于CMyDoc间接继承于CObject,由于CObject具有动态生成、RTTI等特性,为什么在CMyDoc还要加上DECLARE_DYNCREATE(CMyDoc)
这句代码,这句代码的主要作用也是使CMyDoc类具有动态生成,RTTI等特性,这不就是发生功能重复了吗? --------------------编程问答-------------------- 高手帮我看一下 --------------------编程问答-------------------- 单独一个CObject不具有动态生成、RTTI等特性
得和一个CRuntimeClass以及一系列宏合起来才能完成这些功能 --------------------编程问答-------------------- 那深入浅出MFC中的一句话不就错误了:由于CDocument派生自CObject,所以它就有了CObject所支持的一切性质,包括RTTI、动态生成、档案读写。 --------------------编程问答-------------------- 我也想了解,谢谢LZ. --------------------编程问答-------------------- CRuntimeClass其实是一个类似如下的数据结构,而不是一个类,
struct CRuntimeClass
{
CString szClassName;
CRuntimeClass *pNext;
CRuntimeClass *pPrev;
}
查找基类的操作就是沿着这张链表一路寻上去的,所以需要一个动作把它加入这个链表,
这个动作就封装在DECLARE_DYNCREATE(CMyDoc) 宏里。
补充:.NET技术 , VC.NET