首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ dynamic_cast 動態轉換與 static_cast 非動態轉換區別

     編輯:程式設計疑難解答

核心區別

  • dynamic_cast:動態轉換,用於多態類層次中基類指針/引用向派生類轉換(向下轉型)。運行時檢查類型安全,失敗返回 nullptr 或拋異常。要求類有虛函數(多態)。
  • static_cast:靜態轉換,編譯時完成,類似 C 風格強制轉換。用於非多態類型轉換、基類向派生類轉換(程序員確保安全)、基本類型轉換等。無運行時檢查,效率高但不安全。

適用場景

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
場景推薦
基類指針 → 派生類指針(多態)dynamic_cast
基類指針 → 派生類指針(確定安全)static_cast
基本類型轉換(int→double)static_cast
void* → 具體類型*static_cast