dynamic_cast

Wzline發表於2024-07-15

是什麼:
動態型別轉換,確保型別轉換是有效轉換
什麼時候工作:
在程式執行時計算
怎麼工作:
有執行時型別資訊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 << "不能轉換";

}