Этот адрес указателя зависит от порядка наследования? [дублировать]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Этот адрес указателя зависит от порядка наследования? [дублировать]

Сообщение Anonymous »

Кажется, мне не хватает какого -то базового понимания. В этом минимальном примере, почему адрес этого указателя отличается у родителей, в зависимости от порядка наследования? < /p>
class bParent2 {
public:
void addressParent2() {
this;
}
};

class bParent1 {
public:
void addressParent1()
{
this;
}
};

class B :
public bParent1,
public bParent2 // this pointer address is bigger in the second parent?!?
{
public:
void addressB()
{
this;
}
};

class A {
public:
A() {
bInA = new B();

bInA->addressParent1();
bInA->addressParent2();
bInA->addressB();
}
~A() {
delete bInA;
}

B* bInA = nullptr;
};


Подробнее здесь: https://stackoverflow.com/questions/796 ... ance-order
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»