C 的型別轉換詳細介紹

2022-09-29 15:54:18 字數 1265 閱讀 3309

c++的型別轉換詳細介紹

1、型別轉換名稱和語法

c風格的強制型別轉換(type cast)很簡單,不管什麼型別的轉換統統是:

type b = (type)a  

c++風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。

static_cast             靜態型別轉換。如int轉換成char

reinterpreter_cast 重新解釋型別

dynamic_cast       命 名上理解是動態型別轉換。如子類和父類之間的多型型別轉換。

const_cast           字面上理解就是去const屬性。

4種型別轉換的格式:

type b = static_cast (a) 

2、型別轉程式設計客棧換一般性介紹

4中型別轉化介紹 

1)static_cast<>() 靜態型別轉換,編譯的時c++編譯器會做型別檢查;

基本型別能轉換 但是不能轉換指標型別

2)若不同型別之間,進行強制型別轉換,用reinterpret_cast<>() 進行重新解釋

3)dynamic_cast<>(),動態型別轉換,安全的基類和子類之間轉換;執行時型別檢查 (c++特有的)

www.cppcns.com  4)const_cast<>(),去除變數的唯讀屬性(c++特有的),變數的型別必須是指標,指標指向的記憶體空間可被修改

一般性結論

c語言中  能隱式型別轉換的,在c++中可用 static_cast<>()進行型別轉換。因c++編譯器在編譯檢查一般都能通過;

c語言中不能隱式型別轉換的,在c++中可以用 reinterpret_cast<>() 進行強行型別 解釋。

static_cast<>()和reinterpret_cast<>() 基本上把c語言中的 強制型別轉換給覆蓋

reinterpret_cast<>()很難保證移植性。

3、典型案例

**中包含了4中型別轉化的例項,以及注意點。 

#include

using namespace std;

class animal

cat *cat = dynamic_cast(animl);

if(cat!=null) //判斷是不是cat

cout<(p); //去除唯讀的屬相

p2[0] = 'b';

cout << p << endl;

}int main()

本文標題: c++的型別轉換詳細介紹

本文位址:

詳細介紹關於js中的型別轉換

在我們日常的開發當中經常會遇到一些型別轉換,有些是自己主動轉換,有些卻是不知不覺中就被轉換成了某種格式,這種隱式的轉換有些時候會給開發者帶來一些困擾。今天我就專門介紹一些自己了解的關於型別轉換的問題。轉換為boolean型別 主動轉換為boolean值可以通過呼叫boolean 函式進行轉換。boo...

C 的四種型別轉換詳細介紹和使用

舊式轉型c風格的強制型別 type b type a 例如 int i 48 char c char i 新式轉型c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。格式 type b 型別操作符 a 型別操作符 static cast reinterpreter cast dynami...

mysql型別轉換c 型別轉換 C 型別轉換

一 簡介 型別轉換 把資料從一種型別轉換另一種型別 我們要求等號兩邊參與運算子必須型別一致,如果不一致,滿足下列條件會發生自動型別轉換或者隱式型別轉換。1.兩種型別相容 例如 int和double 相容 都是數字型別 2.目標型別大於源型別 double int 顯示型別轉換 1.兩種型別相相容 i...