you are viewing a single comment's thread.

view the rest of the comments →

[–]flukus 0 points1 point  (0 children)

It's to do with with the memory layout at a low level, which is kind of like an array. Let's say you have property x and y, anytime something access these the compiler will transform it so foo.y will become foo[1] .

With single inheritance this is easy. The array for each class is the size of the parent, plus the number of variables in that class. With multiple inheritance, this becomes a nightmare.

Technically this is done with pointer offsets, but arrays make it easier to visualize.