If you use virtual inheritance correctly, the derived class at the bottom of the hierarchy will only have one sub-object of the base class at the top of the hierarchy.