From: Dmitry A. Kazakov <mailbox@dmitry-kazakov.de>
Subject: Re: Q: Endless loop by dispatching
Date: Mon, 21 Jul 2003 10:38:35 +0200
Date: 2003-07-21T10:38:35+02:00 [thread overview]
Message-ID: <818nhv0hrmlheu622t82574blao7bqr0tt@4ax.com> (raw)
In-Reply-To: 3F18DB9D.5020205@attbi.com
On Sat, 19 Jul 2003 05:48:23 GMT, "Robert I. Eachus"
<rieachus@attbi.com> wrote:
>1) All objects of a type derived from Ada.Finalization.Controlled by
>default call the same version of Initialize?
Which one version? How a public part might know that there is a
privately declared Initialize?
>or
>
>2) Information hiding in effect AT THE PLACE OF THE CALL can determine
>which version of a subprogram is called?
For good or bad, but this was the intention, i.e. to hide Initialize
and here you are.
>If you vote for 2), I won't argue, I'll take it as data. The important
>part for the ARG is that in this (foot shooting) case we have to choose.
> The two alternatives are clearly incompatible, and that is what the
>program was written to demostrate.
IMO the problem is that you can have both an overloading in the public
part and an overriding in the private. This is a nasty problem,
because:
1<-->A. if we prohibit this, we would expose something from the
private part;
2<-->B. if we accept this, we have pitfalls as your example shows.
I think that the syntax should clearly distinguish declaring a
primitive (and thus overriding) vs. non-primitive (overloading)
subprogram. Further, no matter how painful it could be, one should
probably outlaw non-primitive subprograms with tagged non-class-wide
arguments. This again would solve little as long as a type can be
publicly non-tagged, being tagged privately. So again I have to repeat
the same old slogan: ALL TYPES BE TAGGED!
---
Regards,
Dmitry Kazakov
www.dmitry-kazakov.de
next prev parent reply other threads:[~2003-07-21 8:38 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-11 8:22 Q: Endless loop by dispatching Michael Erdmann
2003-07-11 9:46 ` Jean-Pierre Rosen
2003-07-11 15:19 ` Michael Erdmann
2003-07-11 10:01 ` Q: " Dmitry A. Kazakov
2003-07-11 15:07 ` Michael Erdmann
2003-07-12 1:41 ` Jeffrey Carter
2003-07-14 8:48 ` Dmitry A. Kazakov
2003-07-14 18:38 ` Randy Brukardt
2003-07-15 8:47 ` Dmitry A. Kazakov
2003-07-15 17:23 ` Randy Brukardt
2003-07-16 8:08 ` Dmitry A. Kazakov
2003-07-16 17:44 ` Robert I. Eachus
2003-07-17 1:57 ` Robert A Duff
2003-07-18 9:10 ` Dale Stanbrough
2003-07-18 20:26 ` Robert I. Eachus
2003-07-18 21:35 ` tmoran
2003-07-19 0:25 ` Robert I. Eachus
2003-07-19 2:30 ` tmoran
2003-07-19 5:48 ` Robert I. Eachus
2003-07-21 8:38 ` Dmitry A. Kazakov [this message]
2003-07-21 10:08 ` Robert I. Eachus
2003-07-21 13:21 ` Dmitry A. Kazakov
2003-07-21 18:51 ` Robert I. Eachus
2003-07-22 7:41 ` Dmitry A. Kazakov
2003-07-22 10:36 ` Lutz Donnerhacke
2003-07-22 12:11 ` Dmitry A. Kazakov
2003-07-22 12:18 ` Lutz Donnerhacke
2003-07-22 14:46 ` Dmitry A. Kazakov
2003-07-22 15:11 ` Lutz Donnerhacke
2003-07-23 8:12 ` Dmitry A. Kazakov
2003-07-19 14:44 ` Chad R. Meiners
2003-07-20 12:36 ` Robert I. Eachus
2003-07-11 16:27 ` T. Kurt Bond
2003-07-12 8:37 ` Michael Erdmann
2003-07-15 7:11 ` Kenneth Almquist
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox