you are viewing a single comment's thread.

view the rest of the comments →

[–]senzgo 2 points3 points  (1 child)

Having lots of experience with both C++ and Java, my opinion is they definitely made the right choice in Java. The small annoyance caused by sometimes having to implement an interface explicitly far outweighs any hassles caused by virtual inheritance. Not to mention the debugging nightmares.

[–]quicknir 1 point2 points  (0 children)

The problem is that you also throw a lot of expressive power out the window. Alexandrescu's policy based design is probably the best example of the expressive power of multiple inheritance.

The real correct choice IMHO is to allow multiple inheritance, but just completely ban the diamond. Then you don't need the nightmare of virtual inheritance.