C++ 各類型轉換及關鍵字


  volatile關鍵字

  表示該變量易變,每次在訪問該關鍵字修飾的變量時都要讀內存,不對其進行優化。

  mutable關鍵字

  類的常成員函數在語義上是不允許修改類的成員變量的,但是有時候可能根據代碼的需要並不是這么絕對。那么就可以使用mutable聲明一個類的成員變量,它告訴編譯器類的常成員函數可以修改這個變量。

  explicit關鍵字

  修飾構造函數,通常用作 構造函數靜止隱式轉換。

  四種類型轉換

  1. const_cast

  去掉類型的const或volatile屬性。

const int a=10;
int &b=const_case<int&>(a);

 

  2. static_cast

  靜態類型轉換,用於類型間強制轉換。用於:

  (1)基類和子類轉換,子類指針轉父類是安全的,父類轉子類不安全。

  (2)基本數據類型轉換。

  (3)空指針轉換成目標類型指針。

  (4)轉換為void類型

int n=1;
double  d=static_cast<double>(n);
int *pn=&n;
double *d=static_cast<double*>(&n);
void *p = static_case<void*>(pn);

  

  3.dynamic_cast

  動態類型轉換,運行時類型安全檢查(轉換失敗返回NULL)

  1.安全基類和子類轉換,基類轉子類會失敗。

  2.必須有虛函數。

  3.相同基類不同子類間轉換,結果為NULL。

 

   4.reinterpret_cast

  重新解釋類型,沒有進行二進制轉換。

  一般用在函數指針類型之間轉換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM