1.dynamic_ cast只能用于支持方法多态类型的指针,如果转换成功,返回指针,转换失败返回nullptr
一般动态转换分为两种情况:
①向下转换downcast
②跨类转换crosscast
另外注意不要转换this指针
当dynamic _cast用 于转换引用时,转换失败将会抛出异常,一般不推荐转换引用(引用需要初始化,空指针不能初始化引用)
class MoveObject
{};
class Man:public MoveObject
{};
class BOSS
{};
class WolfMan:public BOSS,public Man
{};
int main()
{
WolfMan wlfMan;
MoveObject* pMove = &wlfMan;
auto p= dynamic_cast<BOSS*>(pMove);
}
①向下转换即从基类转换成子类
②p=dynamic_cast<BOSS*>(MoveObject*)//(因为这wolfman类包含MoveObject和BOSS)