dynamic_cast是四個強制類型轉換操作符中最特殊的一個,它支持運行時識別指針或引用 。
>>>>>>>>>>>編譯器的RTTI設置>>>>>>>>>>>
dynamic_cast提供RTTI(Run-Time Type Information),也就是運行時類型識別 。它對編譯器有要求,需要編譯器啟動“運行時類型信息”這一選項 。當編譯器不開啟RTTI時,運行含有dynamic_cast操作符的程序時會出現一個警告:
warning C4541: “dynamic_cast”用在了帶 /GR- 的多態類型“ANIMAL”上;可能導致不可預知的行為 VS2010在默認下是開啟RTTI的,也可以自己手動去開啟或者關閉,操作如下:
視圖->解決方案資源管理器在打開的解決方案管理器中,對著項目名稱右擊,選擇屬性配置屬性-〉C/C>>>>>>>>>>>>>步入正題>>>>>>>>>>>>>
dynamic_cast主要用于“安全地向下轉型”dynamic_cast用于類繼承層次間的指針或引用轉換 。主要還是用于執行“安全的向下轉型(safe downcasting)”,也即是基類對象的指針或引用轉換為同一繼承層次的其他指針或引用 。至于“先上轉型”(即派生類指針或引用類型轉換為其基類類型),本身就是安全的,盡管可以使用dynamic_cast進行轉換,但這是沒必要的,普通的轉換已經可以達到目的,畢竟使用dynamic_cast是需要開銷的 。
class ba
猜你喜歡
- 信用卡逾期被強制注銷還能恢復嗎?
- 漢語言文學就業 漢語言文學幾個就業方向
- 強制隔離戒毒和社區戒毒的時間分別是多久?
- 網絡語言sc是什么意思 網絡語言sc含義
- 請問 有什么比較好的C語言 習題冊嘛 或者網站 也行?
- vivo怎樣強制退出盲人模式 vivo如何退出盲人模式
- pixel怎么強制恢復出廠
- 有滔滔不絕說話跡象 心理學判斷男生喜歡你的肢體語言
- 佛教語言中開光儀式代表了什么含義 開光是什么意思
- 簡述膽固醇在體內的生成,轉化和排泄
