From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 17 Apr 92 21:17:51 GMT From: micro-heart-of-gold.mit.edu!news.bbn.com!usc!elroy.jpl.nasa.gov!aero.org! jordan@bloom-beacon.mit.edu (Larry M. Jordan) Subject: Re: Ada vs. C++ Paper (was Re: Why ADA?) Message-ID: <1992Apr17.211751.24319@aero.org> List-Id: >One problem with C++'s inheritance is naming conflicts. If an operation >is given by a parent and a grandparent have the same name, the user must >explicitly name the grandparent in the call if they wish to invoke that >operation. This completely violates the infoirmation hiding OO was >supposed to provide us. What happens when we redesign that parent/ >grandparent - all the users of that class must be rewritten. No, Eiffel >does not suffer from this problem (a name can only propagate out of a >class with one meaning). You use the renames construct to change the >name you're exporting - don't know about TPascal. I think you are describing invoking an overridden or redefined method. (Please correct me if I've misunderstood.) The redefined method must be qualified with the class name, or one gets the redefining method. Has Eiffel changed? I thought renaming was done in the INHERIT clause (by the inheriting class, not the defining class). Will a renaming declaration, as I've seen proposed in ARM, fix this "problem" (I'm still not convinced).? Does Ada "violate information hiding...", since a name can "propogate out of a [package] with more than one meaning"? --Larry %)