Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!uunet!odi!dlw From: dlw@odi.com (Dan Weinreb) Newsgroups: comp.object Subject: Re: Examples of Multiple Inheritance? Message-ID: <1990Dec7.202753.22656@odi.com> Date: 7 Dec 90 20:27:53 GMT References: <60700005@inmet> <1990Dec6.020928.13319@Think.COM> Reply-To: dlw@odi.com Organization: Object Design, Inc. Lines: 21 In-Reply-To: barmar@think.com's message of 6 Dec 90 02:09:28 GMT In article <1990Dec6.020928.13319@Think.COM> barmar@think.com (Barry Margolin) writes: and C++ doesn't make it nearly as easy to make use of MI (perhaps Dan Weinreb, who has migrated from Flavors to C++, could comment on this). That's right. In a nutshell, the basic difference is that in CLOS, a "mixin" flavor can be an independent, reusable module. You can build new flavors by inheriting from pre-existing mixins, and they all join together and work, without modification of code. C++ does not have this concept, and modification of code is needed much more frequently, because individual classes in C++ have the names of parent classes textually embedded within them. The fundamental facility of CLOS that C++ lacks is "call-next-method". (I bet that another reason that there is presently less experience than you might expect with C++ MI is that the AT&T-based implementations still have some implementation problems, particularly with virtual base classes. This has nothing to do with C++, the language definition, of course, but it affects its manner of usage in the short term.)