C++四種類型轉換(reinterpret_cast、dynamic_cast、const_cast、static_cast)描述

  • reinterpret_cast:可以用於任意類型的指針之間的轉換,對轉換的結果不做任何保證。
  • dynamic_cast:這種其實也是不被推薦使用的,更多使用static_cast,dynamic本身只能用於存在虛函數的父子關係的強制類型轉換,對於指針,轉換失敗則返回nullptr,對於引用,轉換失敗會拋出異常。
  • const_cast:對於未定義const版本的成員函數,我們通常需要使用const_cast來去除const引用對象的const,完成函數調用。另外一種使用方式,結合static_cast,可以在非const版本的成員函數內添加const,調用完const版本的成員函數後,再使用const_cast去除const限定。
  • static_cast:完成基礎數據類型;同一個繼承體系中類型的轉換;任意類型與空指針類型void* 之間的轉換。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章