Whenever a class inherits from another one it inherits, too, an instance of that class:
class A { };
class B : A { };
Then class B internally looks like:
class B
{
    A a; // <- implicit base class sub-object, not visible to you
};
Note that in some cases there might be even be more than one A!
class A { };
class B : A { };
class C : A { };
class D : C, B { };
D then internally looks like:
class D
{
    B b; // { A a; }
    C c; // { A a; }
};
with b and c being the base class sub-objects; or in a flattened representation:
class D
{
    A aFromB;              // inherited from B, but not a sub-object of D itself
    // other members of B
    A aFromC;              // inherited from C, again not a sub-object of D
    // other members of C 
};
B and C base class sub-objects are not visible in this representation, still they are there in form of the respective A instance combined with the respective other members (think of having braces around).
If you want to avoid duplicates of A, you need to inherit virtually: class B : virtual A { } – all virtually inherited (directly or indirectly) instances of A are then combined into one single instance (though if there are non-virtually inherited ones these remain in parallel to the combined one), consider:
class A { };
class B : A { };
class C : virtual A { };
class D : virtual A { };
class E : A, B, C
{
    A combinedAFromCAndD;
    // other members of B
    // other members of C
    A separateAFromD
    // other members of D
};
Note: These layouts above are just examples, concrete layouts might vary.