C++ 使用dynamic_cast执行基类向派生类的转换
生活随笔
收集整理的這篇文章主要介紹了
C++ 使用dynamic_cast执行基类向派生类的转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
dynamic_cast是與static_cast,const_cast,reinterpret_cast并列的4種類型轉換操作之一。它可以將基類的指針顯示轉換為派生類的指針,或將基類的引用顯示轉換為派生類的引用。但與static_cast不同的是,它執行的不是無條件的轉換,它在轉換前會檢查指針(或引用)所指向對象的實際類型是否與轉換的目的類型兼容,如果兼容轉換才會發生,才能得到派生類的指針(或引用),否則:
- 如果執行的是指針類型的轉換,會得到空指針。
- 如果執行的是引用類型的轉換,會拋出異常。
注:
轉換前類型必須是指向多態類型的指針,或多態類型的引用,而不能是指向非多態類型的指針或非多態類型的引用,這是因為C++只為多態類型在運行時保存用于運行時類型識別的信息。
總結
以上是生活随笔為你收集整理的C++ 使用dynamic_cast执行基类向派生类的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 三位数的变形
- 下一篇: MATLAB 结构型变量