"amado.alves" a �crit dans le message de news:mailman.293.1068136383.25614.comp.lang.ada@ada-france.org... >A very common programming task where multiple inheritance (MI) would be >handy: implementation of doubly linked lists. [snip] > type Middle_Node is new First_Node with Last_Node; I would take this as a typical example of abuse of MI. Inheritance should reflect an "is a" relationship. Do you fill comfortable stating that a middle node is a first node and a last node at the same time? >But, semantically, MI would allow conversions between Middle_Node and any the other two extended types. >Whether this would be useful for linked lists remains to be ascertained. I confess I have not implemented them this >way yet. So you trade checking a null value for checking a node belonging to a certain class, with a number of extra conversions required.... My advice would be: use MI (and SI as well) IF AND ONLY IF it makes things simpler. Don't bother if people tell you that you are not "purely object oriented" ;-) -- --------------------------------------------------------- J-P. Rosen (rosen@adalog.fr) Visit Adalog's web site at http://www.adalog.fr