C++類型轉換

來源:互聯網
上載者:User

標籤:

C++類型轉換分為:隱式類型轉換顯式類型轉換

隱式轉換

包括以下幾種情況:

1、算術轉換(Arithmetic conversion) : 在混合類型的算術運算式中, 最寬的資料類型成為目標轉換類型。

2、一種類型運算式賦值給另一種類型的對象:目標類型是被賦值對象的類型

3、將一個運算式作為實參傳遞給函數調用,此時形參和實參類型不一致:目標轉換類型為形參的類型

4、從一個函數返回一個運算式,運算式類型與傳回型別不一致:目標轉換類型為函數的傳回型別


顯示轉換

被稱為“強制類型轉換”(cast)

C 風格: (type-id)使用括弧

C++風格: static_cast、dynamic_cast、reinterpret_cast、和const_cast這四個


1、const_cast

用法:const_cast<type_id> (expression)

說明:該運算子用來修改類型的const或volatile屬性。除了const 或volatile修飾之外, type_id和expression的類型是一樣的。

注意:

        必須使用指標或者引用,其實並不是真的改變原類類型(或基本類型)的const屬性,它只是又提供了一個介面(指標或引用),可以

通過這個介面來改變類型值。


2、static_cast

用法:static_cast < type-id > ( expression )

說明:編譯器隱式指向的任何類型轉換都可以由static_cast顯式的完成


3、reinpreter_cast

用法:reinpreter_cast<type-id> (expression)
說明:type-id必須是一個指標、引用、算術類型、函數指標或者成員指標。它可以把一個指標轉換成一個整數,也可以把一個整數轉換成一個指標(先把一個指標轉換成一個整數,在把該整數轉換成原類型的指標,還可以得到原先的指標值)。


4、dynamic_cast

用法:dynamic_cast < type-id > ( expression )

說明:該運算子把expression轉換成type-id類型的對象。Type-id必須是類的指標、類的引用或者void *;如果type-id是類指標類型,那麼expression也必須是一個指標,如果type-id是一個引用,那麼expression也必須是一個引用。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

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.