Структура памяти множественного наследования после преобразования

Я изучаю свою лекцию по C++, и профессор показывает слайд с этим примером кода. Он говорит, что, поскольку b1 является первым родителем (так что я думаю, что он реализован первым?), он имеет тот же адрес памяти, что и дочерний класс (Mi). Тогда я все еще не понимаю, почему b2 не равно &mi, хотя вы указали это таким образом в Base1* b1 = &mi.

Я думал, что в памяти это выглядит так (см. рисунок), но я думаю, глядя на тот факт, что b2 == &mi ложно, это неверно. Как изменить изображение, чтобы оно правильно отображало структуру памяти?введите здесь описание изображения

Mi mi;                  //MI inherits both from Base1 and Base2

Base1* b1 = &mi;        // Upcast

Base2* b2 = &mi;        // Upcast

//Suppose b1 is first parent

//now we test:

b1 == &mi;     //true

b2 == &mi;     //false

person Jens    schedule 02.01.2021    source источник