comp.lang.ada
 help / color / mirror / Atom feed
From: matthias_k <nospam@digitalraid.com>
Subject: Re: Classwide Parameter?
Date: Mon, 11 Oct 2004 19:08:24 +0200
Date: 2004-10-11T19:08:24+02:00	[thread overview]
Message-ID: <ckeelg$dkb$05$1@news.t-online.com> (raw)
In-Reply-To: <uvfdhozbl.fsf@earthlink.net>

Thanks for that answer. However, I'm still having problems (I have 
rewritten the code to be in one single package now):

<snip>
package Graphics is

    type Shape is abstract tagged null record;
    procedure Draw (Obj: Shape'Class);

    type Circle is new Shape with record
       Radius: Float;
       Center: Float;
    end record;
    procedure Draw (Obj: Circle);

    type Square is new Shape with record
       Size: Float;
    end record;
    procedure Draw (Obj: Square);

end;
</snip>

Now, what I want is to have different implementations of the Draw method 
for each Subtype. However, if I run this program:

<snip>
with Graphics;
use Graphics;

procedure Demo is
    type Reference is access all Shape'Class;
    Object: Reference;
begin
    Object := new Circle;
    Draw( Object.all );

    Object := new Square;
    Draw( Object.all );
end;
</snip>

The Shape's Draw method is always called here but it shouldn't. No late 
binding happens. I have tried to make it abstract, but it didn't even 
compile then. What's wrong?

- Matthias



  reply	other threads:[~2004-10-11 17:08 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-11 16:01 Classwide Parameter? matthias_k
2004-10-11 16:53 ` Matthew Heaney
2004-10-11 17:08   ` matthias_k [this message]
2004-10-11 19:16     ` Simon Wright
2004-10-11 22:53     ` Brian May
2004-10-12  2:29     ` Matthew Heaney
2004-10-12  8:01       ` matthias_k
2004-10-12  8:53         ` Martin Krischik
2004-10-12 13:10         ` Matthew Heaney
2004-10-12  7:59     ` Dmitry A. Kazakov
     [not found]       ` <ckg3h6$qau$03$1@news.t-online.com>
2004-10-12  8:14         ` matthias_k
2004-10-12 15:13           ` Dmitry A. Kazakov
2004-10-12  8:10     ` Martin Krischik
replies disabled

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