国产探花免费观看_亚洲丰满少妇自慰呻吟_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,最好不要用這個轉換。

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

圖片精選

主站蜘蛛池模板: 石柱| 宁河县| 黔西县| 讷河市| 广元市| 北宁市| 揭东县| 德安县| 永靖县| 万山特区| 镇康县| 霍城县| 青州市| 宝清县| 桂东县| 米脂县| 尉犁县| 晴隆县| 天水市| 洞口县| 黔东| 都昌县| 青浦区| 崇明县| 西昌市| 邛崃市| 进贤县| 大兴区| 商城县| 马关县| 冀州市| 深泽县| 五寨县| 将乐县| 大化| 华坪县| 崇州市| 福州市| 阿克| 乐亭县| 江都市|