LINUX.ORG.RU

История изменений

Исправление aleksey_tulinov, (текущая версия) :

A <- B <- C <- D

Если мне не изменяет память, то трюк именно в том чтобы расположить родительскую структуру первой в дочерней структуре, тогда схема D должна выглядеть как-то так:

[ A x y z u v ] B a b c ] C ...     ] D r g b ]
^                       ^           ^
|                       |           |
указатель p здесь       B(*p)       C(*p)

как из функций класса D обращаться к полям класса A?

(A*)(this)->x?

Я не помню все эти премудрости в деталях, это псевдокод, но как-то так это и делается.

По теме: документация к OOC выглядит немного запущенной, у них на странице указан std::auto_ptr, его из С++ уже успели удалить. Мне казалось, что лет 10 назад, но на самом деле 10 лет назад он стал deprecated, а удалили его года 3 назад. Возможно стоит глянуть в историю комитов, когда там были последние изменения.

Исходная версия aleksey_tulinov, :

A <- B <- C <- D

Если мне не изменяет память, то трюк именно в том чтобы расположить родительскую структуру первой в дочерней структуре, тогда схема D должна выглядеть как-то так:

[A x y z u v ] B a b c ] C ...     ] D r g b ]
^                      ^           ^
|                      |           |
указатель p здесь      B(*p)       C(*p)

как из функций класса D обращаться к полям класса A?

(A*)(this)->x?

Я не помню все эти премудрости в деталях, это псевдокод, но как-то так это и делается.

По теме: документация к OOC выглядит немного запущенной, у них на странице указан std::auto_ptr, его из С++ уже успели удалить. Мне казалось, что лет 10 назад, но на самом деле 10 лет назад он стал deprecated, а удалили его года 3 назад. Возможно стоит глянуть в историю комитов, когда там были последние изменения.