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: Thu, 5 Dec 91 09:16:23 PST From: ssmith@mprgate.mpr.ca (Shaun Smith) Subject: Invoking Inherited Routines in Ada9x Message-ID: <9112051716.AA04270@merengue.mpr.ca> List-Id: I'm not a member of the mailing list, but since ``Dear Ada'' isn't entertaining 9X questions as yet she/he recommended I mail to it to find an answer to my question. In Ada9x, does you know how a subclass subprogram can invoke the subprogram with the same name defined by an ancestor. This is achieved in Smalltalk by sending a message to "super". By sending to "super" rather than "self", the next implementation of a method in the inheritance hierarchy is invoked rather than the one supplied by the class of the current object. Is that clear? Here's the scenario in C++: eg. class A { virtual void foo(); // virtual means can be redefined by subclasses } class B : public C { void foo(); // "virtualness" inherited } class C : public B { void foo(); // "virtualness" inherited } // In class C implementation file void C::foo() { B::foo(); // must qualify the inherited member function with the // name of the parent which defines it. } C++'s solution to this requirment results in brittle code since one has to specifically identify the parent class which supplies the next most specific implementation of a member function (method). Back to my question. I've had a look through the Ada9x documentation and can't find anything about how this will be done. One person familiar with Ada suggested that perhaps the package name could be used to specify which class's implementatation of "foo" was desired. This suffers from C++`s problem. In addition, isn't is possible to define an arbitrary number of classes within a package. If someone knows the answer, or which document and section to look in, please let me know (by email since I'm not on the list). I'm just trying to get a handle on how Ada9x approaches support for object-oriented programming. Shaun Shaun M. Smith | ssmith@mprgate.mpr.ca MPR Teltech Ltd. | mprgate.mpr.ca!ssmith@uunet.uu.net 8999 Nelson Way, Burnaby, BC | ssmith%mprgate.mpr.ca@relay.ubc.ca Canada, V5A 4B5, (604) 293-5345 |