MOO-cows Mailing List Archive


Re: "verbing properties" and related issues

>This is exactly the reason Multiple Inheritance will not work in a MOO -
>besides the fact it is much less necessary in MOO than in most OO
>languages. C++ needs MI because it can't string 'classes' together, like
>MOO can (As far as i know, i haven't studied C++ that much, yet)

What do you mean "string classes together"?

>C++ can handle MI because it just won't compile if there are errors
>(methods defined on more than one parent, for instance) and the programmer
>would have to edit it. A MI MOO object might run fine, but if some other
>programmer alters one or more of the parents, the whole thing might stop
>working, or worse, give slight errors or destroy a database that has
>been worked on for months (provided you do that in your MOO, without
>making backups :)

This is simply not true.  C++ compiles just fine with MI conflicts, and you 
use the scope resolution operator to pick the proper parent.  ColdMUD has 
MI, and it uses the first parent it finds in a breadth-first search of the 
parent tree.

Not that I'm for adding MI to MOO.  I've seen _one_ single case where it's 
called for, and that's in making an object into a feature object.  Normally 
under Lambdacore, one has to add a couple properties, in JHcore, a single 
method (and that method has to be adapted).  MI would just let you tack on a 
parent of $feature and use interface methods to tell it which verbs are 
"feature verbs".  I can't think of a single other use of MI that can't be 
better solved with a containment relationship.

Home | Subject Index | Thread Index