91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中怎么操作RTTI

發布時間:2021-07-14 17:02:40 來源:億速云 閱讀:100 作者:Leah 欄目:編程語言

本篇文章為大家展示了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被淘汰一樣)。


上述內容就是C++中怎么操作RTTI,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴业县| 乌海市| 无棣县| 卢龙县| 衢州市| 阿勒泰市| 和政县| 闽侯县| 洮南市| 大田县| 息烽县| 克拉玛依市| 浙江省| 射洪县| 航空| 台州市| 隆回县| 元阳县| 城步| 突泉县| 怀仁县| 竹山县| 达尔| 乌苏市| 鹤庆县| 江口县| 石首市| 金寨县| 新绛县| 改则县| 中牟县| 农安县| 乌鲁木齐市| 富源县| 淄博市| 新疆| 泗水县| 万全县| 宜宾市| 漠河县| 镇雄县|