1. 程式人生 > >static_cast和dynamic_cast理解

static_cast和dynamic_cast理解

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();
這種操作無法完成。