(1) допустим, существует такая цепочка наследования (последующие, в свою очередь, наследуют от предыдущего):
Код: Выделить всё
parent->child1->child2->child3->...->child_n;
Код: Выделить всё
parent: DATA
child1: DATA1 = DATA + extra1
child2: DATA2 = DATA1 + extra2 = DATA +extra1,2
...
chidl_n: DATA_n = DATA_n-1 + extra_n = DATA + extra1,2,..., n
Код: Выделить всё
MyClass: public parent, child1, child2, child3, ..., child n;
А. Точно так же, как "chidl_n" выше?
Б. Отличается от "child_n", если да, то чем оно отличается и как его данные организованы в памяти?
--------------------- ----РЕДАКТИРОВАТЬ:
Мне очень жаль, что я так беспокою. Но после прочтения ответа у меня возник прямой вопрос.
Для child_n легко выполнить приведение к любому из его родителей (
Код: Выделить всё
parent, child 1,...,child_n-1
Однако насколько я знаю, из MyClass мы также можем выполнить приведение к любому из его родителей (
Код: Выделить всё
parent, child 1,...,child_n
Интересно, как им управляют и обрабатывают возврат определенного подобъекта MyClass, поскольку они не имеют общего один и тот же начальный адрес.
Они хранили много начальных адресов для каждого подкласса? или Будут ли они выполнять вычисление адреса только при каждом вычислении приведения?
Подробнее здесь: https://stackoverflow.com/questions/786 ... one-by-one