dimanche 16 février 2020

Clarification on "this" pointer with multiple inheritance in C++

I am a bit confused as to how the "this" pointer works with base and derived classes. Consider this code:

class A {
    //some code
};


class B:  public A {
    //some code
}; 

Is it correct to assume that the "this" pointer invoked from class B will be pointing to the same address as a "this" pointer invoked from some code in the base class A?

What about multiple inheritance?

 class A {
        //some code
    };


    class B {
        //some code
    };

    class C:  public A, public B {
        //some code
    }; 

Is it correct to assume that the "this" pointer invoked from class C will be pointing to the same address as a "this" pointer invoked from some code in the base classes A or B? Thanks

Aucun commentaire:

Enregistrer un commentaire