static_cast和dynamic_cast理解

时间:2022-12-29 02:57:35
dynamic_cast主要用于执行“安全得向下转型”,而且基类中必须是多态类。
static_cast可以用于强制隐型转换,它还可以用于很多这样得转换得反向转换。但是它不能将一个const对象转换成一个non_const对象。最接近c类型得转换。如果基类中具有多态性,转换最好使用dynamic_cast


class Base{
    virtual f(){}
}
class Deriver:Base{


}
Derivier* deriver;
Base *b = new Base;
deriver = dynamic_cast<Deriver*>(b);
deriver->f();
这种操作无法完成。