comp.lang.ada
 help / color / mirror / Atom feed
From: "James A. Squire" <m193884@CSEHP3.MDC.COM>
Subject: Re: Dispatching in Ada95
Date: 1996/04/22
Date: 1996-04-22T00:00:00+00:00	[thread overview]
Message-ID: <317BCF1F.6542@csehp3.mdc.com> (raw)
In-Reply-To: md5:331AE542B80F60CE2470F379EDBF578B

On Fri, 19 Apr 1996 13:34:34, Samuel Tardieu <sam@INF.ENST.FR> wrote:

> >>>>> "James" == James A Squire <m193884@CSEHP3.MDC.COM> writes:
>
> James> Unless I am totally dense, in order for dispatching to work in
> James> this example as printed on page II-8, there is one vital
> James> element (which of course is left out of the example on II-8):
> James> "use New_Alert_System; use Emergency_Alert_System;"
>
> James> Otherwise, dispatching doesn't work, because once the 'Class
> James> attribute is used to figure out the actual type of the
> James> Alert'Class parameter in a given instance, and then the Ada83
> James> rules kick in: check all overloaded subprograms _which are
> James> directly visible_ at that point in time and pick the only one
> James> that matches the parameter profile.
>
> I wouldn't say you're totally dense since I don't know you, but I
> think you have misunderstood how dispatching works :)
>
> You're right in saying that it will check a subprogram which is
> directly visible (if you don't give a prefix). But if your parameter
> is of a class-wide type, only a subprogram with the base type of this
> class-wide type needs to be visible.

Correction:  Directly visible.

> Let's take an example. We create a package AAA which defines a class A
> as well as a Create function, and a Get_Info function.

[example snipped]

> Now, our main procedure T. T withes AAA, BBB and Text_IO, and uses all
> of them except BBB.

So, you do compromise and use the use clause, then.  That was my whole
question.  The use clause *is* essential to dispatching.

Thank you for answering my question.  Just another "gotcha" of Ada95 to
note for future reference.
--
James Squire
MDA Avionics Tools & Processes
ja_squire@csehp3.mdc.com
"one of these days I'm going to better myself by going to Knight school"
"You'll be a web knight instead of a web page!"




       reply	other threads:[~1996-04-22  0:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <md5:331AE542B80F60CE2470F379EDBF578B>
1996-04-22  0:00 ` James A. Squire [this message]
1996-04-23  0:00   ` Dispatching in Ada95 Tucker Taft
1996-04-24  0:00   ` Robert Dewar
1996-04-24  0:00 ` Jon S Anthony
     [not found] <md5:F8080176D9F8A3EEEF6212652DAEEEE5>
1996-04-29  0:00 ` James A. Squire
1996-04-29  0:00   ` Robert Dewar
     [not found] <md5:5BDD03FA023B9E2881F3A55BFDD6938A>
1996-04-23  0:00 ` James A. Squire
     [not found] <md5:85373D6BBD0F0A69C09034C3F08892BC>
1996-04-18  0:00 ` James A. Squire
1996-04-19  0:00   ` Robert A Duff
1996-04-19  0:00 ` Samuel Tardieu
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox