在基类的成员函数中,`(Derive *)this`调用什么?

时间:2016-08-26 08:25:56

标签: c++ inheritance this

以下是示例代码:

class B{
    A* get(){
        if(...) return ((D*)this)->get();
        else return NULL:
    }
}

class D : public B{
    A* a;
    A* get(){return a};
}

this会打电话给什么? B::get()D::get()

如果会调用D::get()

然后,如果de_func仅在Derive中定义,((Derive*)this)->de_func()会调用什么?

1 个答案:

答案 0 :(得分:2)

D::get()投射到this后,

D*

this->get()如果您不投稿,则会致电B::get()