卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

dynamic_cast詳解 dynamic_cast與static_cast的區(qū)別?

dynamic_cast與static_cast的區(qū)別?3.1 static uucast用法:static ucast< type ID>(exdivsion)此運(yùn)算符將exdivsion轉(zhuǎn)

dynamic_cast與static_cast的區(qū)別?

3.1 static uucast

用法:static ucast< type ID>(exdivsion)

此運(yùn)算符將exdivsion轉(zhuǎn)換為type ID,但沒有運(yùn)行時(shí)類型檢查來確保轉(zhuǎn)換的安全性。主要有以下幾種用法:

1。用于類層次結(jié)構(gòu)中基類與子類之間指針或引用的轉(zhuǎn)換。

執(zhí)行上行鏈路轉(zhuǎn)換是安全的(將子類的指針或引用轉(zhuǎn)換為基類表示)。

執(zhí)行下行鏈路轉(zhuǎn)換(將基類的指針或引用轉(zhuǎn)換為子類表示)時(shí)是不安全的,因?yàn)闆]有動態(tài)類型檢查。

②用于基本數(shù)據(jù)類型之間的轉(zhuǎn)換,如將int轉(zhuǎn)換為char和int轉(zhuǎn)換為enum。這種轉(zhuǎn)型的安全性應(yīng)該由開發(fā)商來保證。

③將空指針轉(zhuǎn)換為目標(biāo)類型的空指針。

④將任何類型的表達(dá)式轉(zhuǎn)換為void。

注意:靜態(tài)uuucast不能轉(zhuǎn)換常量、voltae或uuuuuu未對齊屬性。

3.2 dynamic uucast

用法:dynamic ucast< type ID>(exdivsion)

此運(yùn)算符將exdivsion轉(zhuǎn)換為ID類型的對象。type ID必須是指向類的指針、對類的引用或void*;

如果type ID是類指針類型,則exdivsion也必須是指針。如果type ID是引用,那么exdivsion也必須是引用。

動態(tài)轉(zhuǎn)換主要用于類級別之間的上轉(zhuǎn)換和下轉(zhuǎn)換,也可以用于類之間的交叉轉(zhuǎn)換。

當(dāng)類級別上轉(zhuǎn)換時(shí),動態(tài)uucast和靜態(tài)uuu的效果相同;

在下行轉(zhuǎn)換時(shí),動態(tài)uucast具有類型檢查功能,比靜態(tài)uucast更安全。

c 中,dynamic_cast是什么作用?

指向基類的指針可以指向繼承類的對象,但相反,指向繼承類的指針不能指向基類的對象。在這個(gè)例子中,Pb=newc做了兩件事:1,創(chuàng)建一個(gè)C的對象;2,隱式地將其轉(zhuǎn)換為類B的指針類型。此時(shí),雖然它的本質(zhì)是一個(gè)C對象,但它仍然是表面上類型B的指針。所以我們使用c*PC=dynamic,當(dāng)cast<C*>(PB)執(zhí)行顯示轉(zhuǎn)換時(shí),編譯器認(rèn)為用戶試圖將繼承類的指針指向基類的對象,這可能導(dǎo)致構(gòu)造函數(shù)無法初始化繼承類的自身成員。如果編譯錯(cuò)誤,RTTI可以安全地將基類的指針轉(zhuǎn)換為繼承類的指針或動態(tài)

Cast用于對象的指針和引用。當(dāng)它用于多態(tài)類型轉(zhuǎn)換時(shí),

允許隱式轉(zhuǎn)換和反向轉(zhuǎn)換操作。它類似于靜態(tài)轉(zhuǎn)換,不同之處在于在相反的轉(zhuǎn)換過程中,動態(tài)轉(zhuǎn)換將檢查操作的有效性。如果返回的對象不是請求的有效完整對象,則返回null,否則返回有效對象。如果返回的對象是引用,則會拋出一個(gè)壞的uucast異常