[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: On C++ multiple inheritance
Miguel A. Osorio wrote:
I'm currently in the process of doing some changes to my renderer
and I'll probably adding some new classes into the existing hierarchy.
At this time, I do make some *light* use of multiple inheritance and
haven't had any problems with it yet, nor do I detect any problems
arising from changes or additions I'll be making to the hierarchy.
*But*, I have noticed that quite a large number of programmers
declare multiple inheritance as something to be "avoided like the
plague", and although I can relate to that if I imagine a badly
designed hierarchy using that mechanism, I'm not really sure of the
reasons behind negative arguments like that.
Multiple inheritance can be dangerous in C++ because it can cause subtle
bugs that are very hard to catch.
Most of these bugs have to do with wrong pointer offsetting when casting
from one of the inherited classes
to the parent cast and vice versa.
If you only use pure virtual abstract classes (the interfacing idea like
already presented in this list)
then the use of multiple inheritance is not that bad.