问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

<深入浅出MFC>中Fream3中这些代码看不懂是什么???

发布网友 发布时间:2024-09-29 22:28

我来回答

4个回答

热心网友 时间:2024-10-04 01:58

☆《深入浅出MFC》MFC仿真——动态类型识别RTTI
我们作为类库的设计者要在类构造起来的时候,记录必要的信息,以建立型录。型录中的类的信息,最好以链表方式连接起来。一般“类别型录”是一个结构,其中至少需要类名字,链表的Next指针,以及链表的First指针。First属于整体变量,一份就好,所以用static修饰。
为了将每一个类都能拥有成员变量集合,并且最好有一定的命名规则,然后经某种手段将整个类库构造好之后,“类别型录”(就是各个CRuntimeClass对象)则能呈现为:
☆什么是DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC 宏?
作用就是完成RTTI的“类别型录”。为了将一个类对象塞到类之中,并定义一个可以捕捉到该对象地址的函数,定义一个宏为:
#define DECLARE_DYNAMIC(class_name)
public:
static CRuntimeClass class##class_name;
virtual CRuntimeClass* GetRuntimeClass()const;

将类放入DECLARE_DYNAMIC宏就是把要放的对象放到了里边。具体连接工作是由IMPLEMENT_DYNAMIC宏来实现:
#define IMPLEMENT_DYNAMIC(class_name,base_class_name)
_IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,0xFFFF,NULL)
IMPLEMENT_DYNAMIC内容制定初值,使用了一个struct AFX_CLASSINIT {AFX_CLASSINTI(CRuntimeClass * pNewClass);};
AFX_CLASSINIT::AFX_CLASSINIT(CRuntimeClass*pNewClass)
{ pNewClass->m_NextClass = CRuntimeClass::pFirstClass;
CRuntimeClass::pFirstClass = pNewClass;
}
就是上边的这个构造函数完成了连接工作。

在宏定义中,出现的##说明将前后两部分连接在一起,出现#说明将#后的部分转换成字符串。

热心网友 时间:2024-10-04 02:03

这些就是类型声明 和宏定义,反斜线意思是就是一行代码分成多行写,告诉编译器这一句没有结束,由于宏定义没有分号结束符,所以要一句写成多行就要加上反斜线,不然编译器是不知道 的

热心网友 时间:2024-10-04 02:07

妹子啊现如今想找个好男人不容易啊你可要好好把握哦。我也是朋友介绍的咨询师,在他的指引下我顺利的通过了老公那一关,我现在的生活很不错;哪个男人都希望是自己的女人的唯一!所以我也向你推荐:如果有需要,可以加咨询师扣扣 号,前四位数:陆四一六、后五位数:二零⑦八捌;他也会指导你。希望你能得到和我一样的幸福.祝你成功

热心网友 时间:2024-10-04 01:59

反斜线代表下一行是这一行的继续,因为宏定义中间不能有回车和空格
比如
#define RUNTIME_CLASS(class_name) \
(&class_name::class##class_name)
相当于
#define RUNTIME_CLASS(class_name) (&class_name::class##class_name)

而##表示把前面的名字和后面的接起来
比如class_name为abc时
class##class_name就相当于classabc

以上代码是MFC自动生成的,主要定义一些常用的运行时类型检查宏,初学的话没有必要看懂
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
主板debug接口怎么使用 Chloe的词根来自哪里 chloe是哪里的牌子 虚言状是怎么讲的 不堪言状的近义词 言状造句 千岛湖森林公园铁索桥地址在哪里? 青岛巨峰风景区-铁索桥地址在哪里? 九潭铁索桥地址在哪里? 铁索桥地址在哪里? CObjectCObject的结构 有什么好看的动漫?新番或者经典的都可以求大神帮助 亲们 求暴走漫画的表情 不要压缩包 只要打包文件夹 能保存到手机图库... 高频听力下降要不要紧 高频听力下降的后果有哪些 疫情过后的说说 2020疫情过后的说说图片 2023疫情期间发朋友圈说说 泰国的落地签,入境是否会被抽查带够现金3000?如果真是这样的话,我是... 柯基犬不吃狗粮怎么办 柯基怀孕况鸡肉可以吗 我男朋友他给我发短信说亲哒我们分手吧,我觉得我们真的不合适,我刚才也... ...那天晚上她和我说“亲爱的宝贝老公,我们分手吧… 债权不得转让出版合同无效的情形有哪些 出版合同可以债权转让吗? 出版合同债权不得转让吗? 怎么我的电脑A45v.华硕官网检查出来是K45VM呢。。说鲁大师是第三方软件... 机器学习 第05集:什么是代价函数?代价函数有什么用?( 含有笔记、代码... 碗外面的颜色有毒吗 本-戈登哪支球队? 本·戈登的介绍 三甲医院为什么报考的人少? 三甲医院报考的人越来越少了吗? 三甲医院报考的人为啥越来越少啊? 报考三甲医院的人少了,是什么情况? ...梦到同一个人,一个以前爱着的人,但已经分开好久了,就莫名其妙的梦到... ...以前自己喜欢的人但是好几年不见了的人是什么意思? 石家庄地铁禁止携带物品目录2024 我国打架轻伤2024年赔偿标准是什么? 葫芦岛市公共租赁住房管理办法第一章 总则 葫芦岛市公共租赁住房管理办法第六章 租赁和退出管理 葫芦岛市城镇最低收入家庭廉租住房管理暂行办法第二章  保障对象... 葫芦岛市城镇最低收入家庭廉租住房管理暂行办法第一章  总则 2016年公租房什么时候分 黄岛公共租房申请怎样写 ...那件字母的型号 只知道是三叶草的 感激不尽 ... 哪位大神帮忙验证下三叶草真伪,感激不尽 各位大神~帮我看看我的阿迪达斯三叶草是不是正品~~小弟感激不尽... ...件三叶草外套真假,型号是,G76166X41201,感激不尽! 刚入手的三叶草zx5000,求大神鉴定!! 感激不尽 求高手帮小弟辨别下三叶草阿迪达斯真假货,感激不尽。