国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

static_cast,dynamic_cast,reinterpret_cast,const_cast的區別及用法詳解

2020-01-26 15:50:20
字體:
來源:轉載
供稿:網友

1.static_cast對類的指針只能轉換有繼承關系的類。對普通的指針來說只能在void*和其他指針之間轉換。它還可轉換簡單的類型,比如int到char等。不能提供數字到指針的轉換。不能提供不同類型指針之間的轉換比如int*到char*。

2.dynamic_cast提供安全的轉換如果兩個指針不存在繼承關系轉換會失敗返回空指針,如果你提供一個錯誤的指針那樣會發生內存訪問異常,因為它會去比較兩個類型的虛函數表。虛函數表的指針一般放在對象指針最開始的四字節中,你去訪問一個錯誤的地址這樣肯定會發生異常。

3.reinterpret_cast提供數字到指針間的轉換比如void*到int。提供不同類型指針的強制轉換比如int*到char*。不提供int到char的轉換。但是處理類指針轉換的時候不能用它,它不會自動的調整指針。

4.const_cast把一個const指針轉為非const,最好不要用這個轉換。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 云林县| 罗江县| 东乡| 洛宁县| 永靖县| 曲麻莱县| 富民县| 托克托县| 金阳县| 丹寨县| 大田县| 武隆县| 泽州县| 丹东市| 龙江县| 辰溪县| 神池县| 黔东| 浪卡子县| 眉山市| 沂水县| 太仆寺旗| 汤阴县| 宽城| 苏尼特左旗| 上饶市| 新宁县| 长武县| 易门县| 长宁县| 黎平县| 上高县| 闽侯县| 深水埗区| 重庆市| 双江| 安新县| 桐城市| 宜丰县| 周口市| 安溪县|