用于c++類集成多態(tài)間的轉(zhuǎn)換,分為: 1、子類向基類的向上轉(zhuǎn)型, 2,基類向子類的向下轉(zhuǎn)型 向上轉(zhuǎn)型不需要借助任何特殊的方法,只需要將子類的指針或引用即可
向下轉(zhuǎn)換:dynamic_cast操作符,將基類類型的指針或引用安全的轉(zhuǎn)換為派生類的指針或引用,dynamic_cast將一個(gè)幾類對(duì)象指針cast到繼承類指針,dynamic_cast會(huì)根據(jù)基類指針是否真正指向繼承類只恨來(lái)做相應(yīng)出力。這也是dynamic_cast與其他轉(zhuǎn)換不同的地方dynamic_cast涉及運(yùn)行時(shí)類別檢查,如果綁定到引用或指針的對(duì)象不是目標(biāo)類型的對(duì)象,則dynamic_cast失敗。如果是指針類型失敗,則dynamic_cast的返回結(jié)果為0,如果是引用類型的失敗,則拋出一個(gè)bad_cast錯(cuò)誤。 注意:dynamic_cast在將父類cast到子類時(shí),父類必須要有虛函數(shù)。因?yàn)閐ynamic_cast運(yùn)行時(shí)需要檢查RTTI信息。只有帶虛函數(shù)的類運(yùn)行時(shí)才會(huì)檢查RTTI。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注