C++ Primer筆記(8)

來源:互聯網
上載者:User

何時發生隱式類型轉換
1、混合類型運算式中,其運算元被轉換為相同的類型。
2、用作條件運算式的被轉換為bool類型
3、用一運算式初始化某個變數,或賦值,運算式會轉化為變數的類型。

4、函數調用中也可能發生隱式類型轉換。


顯式轉換也稱為強制轉換,強制類型轉換符:static_cast、dynamic_cast、const_cast、reinterpret_cast;
何時需要強制轉換類型:覆蓋通常的標準轉換,需顯式使用強制類型轉換。
double dval;
int ival;
ival *=dval;
為了與dval做乘法操作,需將ival轉換為double型,然後將乘法操作的double型結果截尾為int型,再賦值給ival,為了去掉將ival轉換為double型這個不必要的轉換,可通過強制將dval轉換為int型

ival *=static_case<int>(dval);


dynamic_cast支援運行時識別指標或引用所指向的對象。
const_cast裝轉換掉運算式的const性質。
編譯器隱式執行的任何類型轉換都 可以由static_cast顯式完成。

reinterpret_cast通常為運算元的位元模式提供較低層次的重新解釋。


強烈建議程式員避免使用強制類型轉換。
雖然標準C++仍然支援舊式強制轉換符號,但是我們建議,只有在C語言或標準C++之前的編譯器上編寫代碼時,才使用這種文法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.