I\'m trying to understand the affect of inheritance order in C++.. I looked online, but I couldn\'t find a clear and sufficient answer...
So, for the sake of the que
The order of derivation is relevant only to determine the order of default initialization by constructors and cleanup by destructors.
The order of derivation is not significant except as specified by the semantics of initialization by constructor (12.6.2), cleanup (12.4), and storage layout (9.2, 11.1). — end note ]" (§10.1/2)
From IBM's C++ documentation: Multiple inheritance
The C++11 Standard says (§10.1) [class.mi]:
The order of derivation is not significant except as specified by the semantics of initialization by constructor (12.6.2), cleanup (12.4), and storage layout (9.2, 11.1).
The three referenced paragraphs reveal that
Note that the memory layout can be important. For example, if an external library makes naive C-style casts that assume that the part of the object it's interested in is at the beginning, it can lead to run time errors that are hard to debug.