是什麼:
動態型別轉換,確保型別轉換是有效轉換
什麼時候工作:
在程式執行時計算
怎麼工作:
有執行時型別資訊RTTI 儲存了我們所以型別執行時的型別資訊 所以能夠判斷型別轉換是否合理
寫法:
dynamic_cast<要轉換的型別>(變數名);
程式碼示例:
class Entity
{
public:
virtual ~Entity()
{}
};
class Player :public Entity
{
};
class Enmy :public Entity
{};
int main()
{
Player* player = new Player();
Entity* entitymy = new Enmy();
Player* p = dynamic_cast<Player*>(entitymy);
if (p)
{
std::cout << "能轉換";
}
else
std::cout << "不能轉換";
}