C 學習高階(一) 四種cast的用法

2021-10-20 09:28:43 字數 1234 閱讀 6282

upcast:派生類轉換為基類

downcast:基類轉換為派生類

語法:dynamic_cast《待轉換型別》(待轉換資料)

class

base};

class

son:

public base

;int

main()

class

pass

;class

base};

...pass* pa=

new pass;

base* p=

dynamic_cast

>

(pa)

;//兩個沒有關聯的類指標,不允許轉換

語法:static_cast《待轉換型別》(待轉換資料)

int b=

static_cast

<

int>

(12.3);

//內建資料型別的轉換,允許

class

base};

class

son:

public base

;int

main()

class

pass

;class

base};

...pass* pa=

new pass;

base* p=

static_cast

>

(pa)

;//兩個沒有關聯的類指標,不允許轉換

語法:const_cast《待轉換型別》(待轉換資料)

const

char

* str=

"12345"

;char

* temp=

const_cast

<

char

*>

(str)

;//允許

語法:reinpreter_cast《待轉換型別》(待轉換資料)

C 四種cast常用法

用法 static cast type id expression 1.用於類層次結構中基類和子類之間指標或引用的轉換。進行上行轉換 把子類的指標或引用轉換成基類表示 是安全的 進行下行轉換 把基類指標或引用轉換成子類表示 時,由於沒有動態型別檢查,所以是不安全的。2.用於基本資料型別之間的轉換,如...

C 四種cast轉換

c 中四種型別分別為 static cast dynamic cast const cast reinterpret cast 1.const cast 用於將const變數轉換為非const 2.static cast 用於各種隱式轉換,比如非const轉const,void 轉指標等,也可以用於...

C 中四種cast轉換

c 中四種型別轉換是 static cast,dynamic cast,const cast,reinterpret cast 1 static cast 用於各種隱式轉換,例如將非const轉換為const,void 轉指標 將void指標指向任意型別 等,用於多型向上轉化,如果向下轉能成功但是不...