1、子类转换到父类自动转换,不需要强制转型
// Derived派生类(子类)
// Base 基类(父类)
Base *A =new Derived; //Derived->Base.
2、父类转换子类需要强制类型转换
就要使用dynamic_cast和static_cast转换
dynamic_cast和static_cast区别
例子:
class Base{}//基类
class Derived:public Base{} //单继承(子类1)
class Base1{}//基类
class Derived1:publicBase,public Base1{} //多重继承(子类2)
Base*pD=newDerived;
Derived*pD1=dynamic_cast<Derived*>(pD);//基类指针pD指向派生类的指针且当前派生类为单继承,可以用dynamic_cast或者static_cast;
Derived1*pD1=dynamic_cast<Derived1*>(pD);//基类指针pD指向派生类的指针且当前派生类为多重继承,只能用dynamic_cast;