From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,aee6065fc75bfcb4 X-Google-Attributes: gid103376,public From: jsa@alexandria.organon.com (Jon S Anthony) Subject: Re: Overlaying of methods. Date: 1997/09/30 Message-ID: #1/1 X-Deja-AN: 276853523 Distribution: world References: <34310F93.41C6@htl-bw.ch> Organization: PSINet Newsgroups: comp.lang.ada Date: 1997-09-30T00:00:00+00:00 List-Id: In article <34310F93.41C6@htl-bw.ch> Stefan Muehlebach writes: > type XaCrowColumn is new XaContainer with private; > type XaCrowColumn_Ptr is access all XaCrowColumn'class; > procedure Init(o : access XaCrowColumn; > parent : access XaApplication'class; > orientation : ...; > num_cols : Integer := 1; > adjust_last : Boolean := True); > > (XaApplication is the parent class for all classes in my library) > > Part of the second package (which uses the one above): > > type XaCradioBox is new XaCrowColumn with private; > type XaCradioBox_Ptr is access all XaCradioBox'class; > procedure Init(o : access XaCradioBox; > parent : access XaApplication'class; > orientation : ...; > num_cols : Integer := 1); > > In the main program I declare a new object the following way: > > myRadioBox: XaCradioBox_Ptr := new XaCradioBox; > > BUT - and that is the frustrating point - if I write a statement like > this > > Init(myRadioBox, aParent, anOrientation); type XaCradioBox has two overloaded Init procedures (3.2.3 & 3.4): the one inherited from it's parent with the "adjust_last" in its signature (implicitly declared) and the one explicitly declared on it without "adjust_last" in its signature. Either of these can be invoked on myRadioBox. Perhaps more to the point, either of these can be chosen to determine the runtime dispatch resolution. Which of these is chosen for this is a compile time overload resolution. Off the top of my head, the call looks like it should give a compile time ambiguous overload resolution error. If this isn't true, could Robert, Bob or Tucker explain why it is OK? /Jon -- Jon Anthony STL, Belmont, MA 02178, 617.484.3383 "Nightmares - Ha! The way my life's been going lately, Who'd notice?" -- Londo Mollari