2008年10月18日星期六

RTTI和RTCI

花了一点时间看了下C++的RTTI和MFC用macro实现的RTCI,顿时感觉……

RTTI没的说了,感觉和VB6的Typename和IsKind(MS是这个,忘了- -#,反正就是判断控件类型的)很像,但是MS功能有点弱,毕竟C++不是用来RAD开发的。不过也的确可以解决某些Virtual Function不能解决的问题。

不过开启RTTI会导致一定的效率低下MS,而且VC默认还关闭这个编译选项的。汗- -

至于MFC的RTCI,首先,对M$的MFC开发小组标示赞赏,能把MFC弄得如此复杂真的不容易-。-,一大堆的Macro,不过实现感觉和Message Map有点异曲同工呵,从继承树最底层开始对比,然后往上翻。只不过把AFX_MSGENTRY换成了CRunTimeClass。

不过话说回来,MFC对于RTCI的某些地方很值得学习。

最后,MS我发现目前没有什么机会会用到RTTI/RTCI- -#,而且MS M$不是很推荐在MFC里面大量使用RTCI,然后说建议用Virtual Function代替

没有评论:

发表评论

1、可以使用<b>、<i>、<a>等Html标志,让评论更有特色...
2、支持OpenID登录,技术达到国际先进水平。但切记,评论内容不代表本站观点!
3、当遇到“连接被重置”、“连接超时”和“此网页无法访问”等而发表不了评论的话,请多刷新几次页面,或迟三分钟后再试;
4、对你的浏览造成不便,站长在此代表全国G.FW工作人员向你鞠躬致歉!!!