成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

dynamic_cast和static_cast dynamic-cast可以作為對象繼承之間的轉換?

dynamic-cast可以作為對象繼承之間的轉換?動態(tài)uucast用于對象的指針和引用。當它用于多態(tài)類型轉換時,允許隱式轉換和反向轉換操作。它類似于靜態(tài)轉換,不同之處在于在相反的轉換過程中,動態(tài)轉換

dynamic-cast可以作為對象繼承之間的轉換?

動態(tài)uucast用于對象的指針和引用。當它用于多態(tài)類型轉換時,

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

3.1 static ucast

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

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

1。用于類層次結構中基類與子類之間指針或引用的轉換。

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

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

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

③將空指針轉換為目標類型的空指針。

④將任何類型的表達式轉換為void。

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

3.2 dynamic uucast

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

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

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

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

當類級別上轉換時,動態(tài)uucast和靜態(tài)uuu的效果相同;

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

dynamic_cast與static_cast的區(qū)別?

很多C源代碼,如果編譯器不能編譯通過,提示不能使用指針強制轉換,那么你需要一個小的重新解釋uucast<type>,例如,一個簡單的rswier/c4c4編譯器源代碼,這是一個C風格的源代碼,你可以用這個東西。這個源代碼稍加修改,可以用G,vs(cpp文件)編譯,類型轉換錯誤可以很快解決。在arm和X86平臺上使用G編譯器可以編譯。當您轉到MFC時,您可以看到reinterpret When you create the source code(vs2017)ucast<hmode> to convert a type to a handle。然后mov deax、eax等等,然后重新解釋uucast<char*>,同樣的道理。類似地,constucast、staticuucast、dynamicuucast和其他cast都有自己的場景。當你需要了解這些東西的時候,你不會使用它們。