青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

?RTTI(運行時類型信息),是所有RAD開發工具的基礎。
??? 這段時間,因為需要在自己的軟件中加入擴展的RTTI功能,于是專門對RTTI進行了研究,現在一些心得寫下來。
??? RTTI是比較新的編程語言提供的能力,C、Fortran、Basic就沒有,而現在幾乎所有現代的、可視化的編程語言都提供了RTTI功能。C++的標準中也對RTTI作了規定。但相對其它語言而言,C++的RTTI信息是最簡單的。
?
一、RTTI典型的應用需求
??? 1、類型的識別,即能在運行時判斷出某對象、表達式等的類型,能判斷它們是基本類型(int、string),還是對象,以及它們區別于其它類型的標識;
??? 2、對象的繼承關系的運行時判斷;
??? 3、在出錯處理、內存診斷等處理時的輸出信息;
??? 4、基于字符型名稱的運行時對象訪問、方法調用;
??? 5、對象的自動保存和讀入;
????6、基于ID或名稱的對象自動生成;
??? 7、環境配置的保存和讀入;
??? 8、程序自動生成;

二、C++中RTTI的實現
????RTTI最直接的實現是通過編程語言的語法支持功能,由編譯器自動完成,比如:Delphi等語言就提供了Property關鍵字。C++語言沒有這些語法支持功能,因為C++不是一種RAD語言,可以將VB、Delphi、Java等與之進行對比。C++的RTTI是最簡單的,只能獲得類名和相關的繼承信息;而VB、Delphi、Java等確復雜得多,甚至于支持屬性名、方法名、事件名等。

??? 標準C++ 提供了typeid()?操作,以得到類型信息,它的參數可以是一個表達式,可以是一個對象、指針或者引用,通過這個方法,可以得到一個指向常type_info對象,里面包含了這個表達式的類型必要的信息。type_info對象提供的功能有如下這些:
??? 1、name(),可以得到一個包含類型信息的字符串,返回如:"int"、"MyClass"等;
??? 2、before(),用來在類型列表中遍歷;
??? 3、==操作,用來判斷類型是否相同;
??? VC中的MFC提供的RTTI實現與C++提供的差不多,但是有一些功能上和實現在的差別,但也只是提供了名稱和比較功能。
??? 不能說,這是C++或VC中的缺陷,這是由C++的定位決定了,如果C++加上了復雜的RTTI信息,則C++可能就變成了C#或別的什么語言了。是的,C#增加了比較復雜的RTTI信息,誰讓他的主設計者就是從Borland公司過去的呢(這也決定了C++在.NET框架中的會被淘汰的命運,因為它在.NET中沒有合適的定位,就象VF被淘汰一樣)。
???
三、RTTI實現的要點
??? 作為一種語言的新特性,RTTI的實現,應有如下要求:
??? 1、必須滿足特定語言的定位和要求,不能說,將所有可能的功能加進去就是好東西了;
??? 2、必須是盡可能透明的,RTTI的主要應用在IDE和底層,一般情況下,編程用戶不需要了解過多的RTTI細節,比如:作為Delphi用戶,他只需要基于屬性的訪問方法,只需要知道基于組件的保存方法,不需要了解RTTI在其中所起的作用,就象電視機的使用者不需要了解電視機的原理;
??? 3、盡可能輕便,不能因為實現RTTI要耗費大量內存和CPU時間,不能占用太大的程序空間,當然,這個要求是相對的,
????4、盡可能高效
??? 4、作為RTTI的實現者,應該盡可能在定義了功能集的情況下,以幽雅的方法實現之。
??? C++中實現RTTI和執久化是通過宏來完成的,幽雅嗎?算是吧。

四、關于幾個庫中RTTI實現的評價
??? 1、MFC,MFC實現了簡單的,與標準C++有區別的RTTI,其實現是通過宏來完成的,同時通過宏來輔助用戶完成執久化工作,但執久化
的具體細節要求用戶完成。
??? 2、VCL,VCL實現了比較復雜的RTTI,具有關系繼承、屬性、方法、事件、基于屬性的自動對象生成、強大的執久化功能;
??? 3、COM,COM通過類型庫定義其RTTI,比VCL還要復雜。
??? 4、QT, QT中實現的RTTI也是比較復雜的,值得說明的是,它提供了一種特別的擴展方法,在編譯前,必須將其RTTI信息轉換為標準C++語言,個人認為,這是一種不好的方法,雖然我對QT庫的評價非常高。特別是它提供的富有特色的CANVAS功能(寫到這里,想起以前使用 Oracle的擴展C語言時的痛苦)。
??? 5、WXWINDOW,實現的是比較簡單的RTTI。
??? 6、VCF,實現了我所看到的在C++中最全面的RTTI功能,但其性能是一個大問題。
??? 7、OOPS,實現了我所看到的在C++中對象執久化全好的解決方案,但它的擴充性不好在已有標準庫的基礎上能很好地完成工作,但在增加第三方庫的時侯就痛苦了(對了,OOPS中有一篇文章,對RTTI的需求進行了定義,寫得非常好http://www.rcs.hu/Articles/RTTI_Part1.htm)。

五、附言
??? 我為什么對RTTI比較關注呢,因為我需要在自己的C++中增加一個輕型的RTTI系統,目前這個體系統正在設計中。

Posted on 2006-09-11 15:10 艾凡赫 閱讀(674) 評論(1)  編輯 收藏 引用 所屬分類: C++

Feedback

# re: 關于C++中RTTI的思考 一(轉)  回復  更多評論   

2009-09-30 14:25 by JasonSun
很期待樓主實現自己的RTTI解決方案
到時一定要貼出來,讓我學習一下!
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产一区视频在线观看 | 日韩一级黄色av| 亚洲综合色在线| 亚洲精品国产系列| 国语自产偷拍精品视频偷 | 精品动漫3d一区二区三区| 国产日韩精品在线播放| 国产欧美韩国高清| 国产模特精品视频久久久久| 国产一区二区黄| 精品电影一区| 一区二区三区欧美日韩| 欧美影视一区| 亚洲第一天堂av| 久久国产一区二区| 欧美激情精品久久久| 9久re热视频在线精品| 午夜精品视频网站| 久久尤物视频| 欧美高清在线精品一区| 国产精品国产| 136国产福利精品导航网址| 亚洲激情第一区| 欧美一二三视频| 亚洲成人在线网站| 亚洲欧美成人网| 美女主播视频一区| 国产精品网站在线播放| 最新成人在线| 久久精品成人一区二区三区| 亚洲激情网址| 亚洲天堂网站在线观看视频| 美国三级日本三级久久99| 国产精品免费一区二区三区观看 | 黑丝一区二区| 亚洲欧美文学| 亚洲肉体裸体xxxx137| 麻豆精品视频| 亚洲激情六月丁香| 欧美www视频| 久久国产主播精品| 亚洲精品乱码久久久久久日本蜜臀| 亚洲女女做受ⅹxx高潮| 欧美日韩国产大片| 亚洲欧洲精品一区二区三区| 久久久久久亚洲综合影院红桃| 在线视频中文亚洲| 欧美日韩精品免费观看视频完整| 亚洲风情在线资源站| 久久免费国产| 久久国产综合精品| 国内精品久久久久久久影视蜜臀| 欧美一区二区三区视频免费播放| 中文一区在线| 欧美体内she精视频| 日韩视频精品在线观看| 欧美激情1区2区3区| 久久久综合激的五月天| 黑人一区二区三区四区五区| 久久久久久久久久久久久女国产乱 | 国产精品av久久久久久麻豆网| 亚洲欧洲午夜| 牛夜精品久久久久久久99黑人| 欧美一级二区| 国产免费一区二区三区香蕉精| 先锋影院在线亚洲| 午夜在线观看免费一区| 国产美女一区二区| 久久精品99| 久久精品国产91精品亚洲| 国产原创一区二区| 久久亚洲不卡| 嫩草伊人久久精品少妇av杨幂| 91久久在线播放| 亚洲美女精品一区| 国产精品扒开腿做爽爽爽软件| 亚洲欧美韩国| 欧美亚洲一区三区| 亚洲国产福利在线| 亚洲三级电影全部在线观看高清| 欧美精品在线极品| 亚洲欧美日韩国产一区二区| 午夜精品视频在线观看一区二区| 一区视频在线看| 亚洲高清成人| 欧美日韩喷水| 另类成人小视频在线| 欧美精品v日韩精品v国产精品| 亚洲欧美不卡| 免费毛片一区二区三区久久久| 国产精品99久久久久久久久| 亚洲性人人天天夜夜摸| 在线成人亚洲| 在线视频欧美日韩| 在线观看成人一级片| 亚洲免费激情| 久久精品午夜| 亚洲狠狠丁香婷婷综合久久久| 欧美日韩国产二区| 欧美中文在线免费| 蜜桃伊人久久| 欧美一区三区二区在线观看| 日韩亚洲欧美成人一区| 亚洲淫性视频| 日韩视频在线一区二区| 久久成人免费网| 亚洲欧美日本日韩| 蜜桃av噜噜一区| 欧美在线视频一区二区三区| 免费成人你懂的| 久久国产成人| 欧美精品一区二区蜜臀亚洲| 久久久久国产精品一区二区| 欧美韩日精品| 欧美成人午夜激情| 国产综合自拍| 亚洲视频中文| 一本色道久久综合亚洲精品高清| 久久精品国产综合精品| 午夜精彩视频在线观看不卡| 欧美日韩精品一区二区三区| 免费一级欧美片在线播放| 国产精品久在线观看| 亚洲欧洲日本国产| 亚洲精华国产欧美| 久久亚洲一区二区| 久久天堂国产精品| 国产欧美日韩亚洲一区二区三区| 亚洲精品四区| 亚洲美女精品成人在线视频| 久久久久国产成人精品亚洲午夜| 亚洲欧美日本精品| 欧美四级在线观看| 中文精品99久久国产香蕉| 99国产精品国产精品久久| 久久综合狠狠| 欧美激情精品久久久久久黑人 | 亚洲精选一区| 欧美成人免费观看| 欧美88av| 一区二区三区在线观看欧美| 久久精品国产久精国产一老狼| 久久久精品一区二区三区| 国产欧美精品在线播放| 亚洲一区二区三区在线播放| 亚洲男女自偷自拍| 国产精品国产自产拍高清av王其| 女同性一区二区三区人了人一| 国内久久精品| 久久综合中文色婷婷| 亚洲第一黄色网| 在线视频你懂得一区| 亚洲精品韩国| 一区二区三区视频在线| 欧美日韩一区三区四区| 一道本一区二区| 久久黄色级2电影| 在线播放国产一区中文字幕剧情欧美 | 亚洲一区二区在线观看视频| 午夜电影亚洲| 国产日韩欧美在线播放| 久久婷婷国产综合尤物精品| 免播放器亚洲一区| 日韩午夜av电影| 国产精品久久一区二区三区| 久久精品国产999大香线蕉| 欧美二区不卡| 亚洲午夜激情在线| 国产欧美三级| 欧美国产视频一区二区| 亚洲视频精选在线| 久久久久天天天天| 99国产精品私拍| 国产一区再线| 欧美天天视频| 另类av一区二区| 亚洲一区在线视频| 亚洲大片在线| 欧美制服丝袜| 一区二区三区欧美| 在线激情影院一区| 国产精品麻豆va在线播放| 久久一区中文字幕| 亚洲综合欧美| 亚洲乱码一区二区| 欧美成人高清视频| 欧美在线一区二区| 亚洲桃花岛网站| 最新热久久免费视频| 国产区亚洲区欧美区| 欧美日韩国产区| 另类成人小视频在线| 午夜免费电影一区在线观看| 亚洲国产天堂久久综合网| 久久嫩草精品久久久精品| 亚洲一区二区三区四区五区午夜| 亚洲人成人77777线观看| 悠悠资源网亚洲青| 国产一区二区精品| 国产欧美综合在线|