comp.lang.ada
 help / color / mirror / Atom feed
From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: How to write TYPECASE in Ada 95?
Date: 1999/02/06
Date: 1999-02-06T00:00:00+00:00	[thread overview]
Message-ID: <m3u2wzxn4j.fsf@mheaney.ni.net> (raw)
In-Reply-To: m3679fz3wv.fsf@mheaney.ni.net

Matthew Heaney <matthew_heaney@acm.org> writes:

> with Points; use Points;
> procedure Test_Points is
> begin
> 
>    declare
>       P : Tall_Point := (3.0, 4.0, 5.0);
>    begin
>       Points.Show_Type (P);
>       Points.Show_Properties (Point'Class (P));
>    end;
> 
>    declare
>       P : Painted_Point := (3.0, 4.0, Points.Blue);
>    begin
>       Points.Show_Type (P);
>       Points.Show_Properties (Point'Class (P));
>    end;
> 
> end Test_Points;


I should have pointed out that you don't actually need to dispatch
Show_Properties.  At the invocation, you know the specific type of the
point, so why convert it to the class-wide type?

procedure Test_Points is
begin

   declare
      P : Tall_Point := (3.0, 4.0, 5.0);
   begin
      Points.Show_Type (P);
      Points.Show_Properties (P);
   end;

   declare
      P : Painted_Point := (3.0, 4.0, Points.Blue);
   begin
      Points.Show_Type (P);
      Points.Show_Properties (P);
   end;

end Test_Points;


The object model of Ada95 was designed to allow the caller to choose
whether dispatching occurs.  All the calls in the example above are
static, which is all they need to be.









  reply	other threads:[~1999-02-06  0:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-02-05  0:00 How to write TYPECASE in Ada 95? Norman Ramsey
1999-02-05  0:00 ` Brian Rogoff
1999-02-05  0:00   ` David C. Hoos, Sr.
1999-02-05  0:00     ` Brian Rogoff
1999-02-06  0:00   ` Ed Falis
1999-02-06  0:00     ` Nick Roberts
1999-02-06  0:00       ` Nick Roberts
1999-02-17  0:00     ` Tom Moran
1999-02-18  0:00       ` Matthew Heaney
1999-02-18  0:00         ` Tom Moran
1999-02-18  0:00           ` Matthew Heaney
1999-02-18  0:00         ` Tom Moran
1999-02-18  0:00         ` robert_dewar
1999-02-19  0:00           ` Nick Roberts
1999-02-19  0:00           ` Tom Moran
1999-02-19  0:00     ` Tom Moran
1999-02-19  0:00       ` Tom Moran
1999-02-23  0:00       ` Samuel Mize
1999-02-23  0:00         ` Question (was Re: How to write TYPECASE in Ada 95?) Mike Silva
1999-02-24  0:00           ` Samuel T. Harris
1999-02-24  0:00             ` Matthew Heaney
1999-02-24  0:00               ` Tucker Taft
1999-02-24  0:00           ` (long) programming by extension (was: " Samuel Mize
1999-02-24  0:00             ` (long) programming by extension Samuel Mize
1999-02-25  0:00               ` (shorter and new) " Samuel Mize
1999-02-25  0:00                 ` Mike Silva
1999-02-26  0:00                   ` Samuel Mize
1999-02-24  0:00           ` Question (was Re: How to write TYPECASE in Ada 95?) Nick Roberts
1999-02-06  0:00 ` How to write TYPECASE in Ada 95? David C. Hoos, Sr.
1999-02-06  0:00   ` Matthew Heaney
1999-02-06  0:00     ` Matthew Heaney [this message]
1999-02-06  0:00     ` Matthew Heaney
1999-02-09  0:00     ` David C. Hoos, Sr.
1999-02-06  0:00 ` Matthew Heaney
replies disabled

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