From: Matthew Heaney <matthewjheaney@earthlink.net>
Subject: Re: Classwide Parameter?
Date: Tue, 12 Oct 2004 13:10:54 GMT
Date: 2004-10-12T13:10:54+00:00 [thread overview]
Message-ID: <uekk43r0c.fsf@earthlink.net> (raw)
In-Reply-To: ckg303$dbt$00$1@news.t-online.com
matthias_k <nospam@digitalraid.com> writes:
> Matthew Heaney wrote:
> > matthias_k <nospam@digitalraid.com> writes:
> >
> >>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);
> > Get rid of this operation. It's a "class-wide" operation (like a
> > static
> > method in C++), and hence the operation isn't primitive for the type
> > (and therefore doesn't dispatch).
> >
>
> Oha? I thought it would be analogous to 'virtual' in C++, not static.
I should have said: "change the type from Shape'Class to Shape, and
optionally declare the operation as abstract."
In Ada, you don't need to say "virtual". An operation for a type is
"primitive" whenever it has the type as a parameter or return type, and
the operation is declared in the same package as the type.
To make a "static" method in Ada, declare the parameter as T'Class.
> And btw.: What does dispatch mean? :) Is that the Ada term for dynamic
> binding?
Yes.
next prev parent reply other threads:[~2004-10-12 13:10 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
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 [this message]
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