comp.lang.ada
 help / color / mirror / Atom feed
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



  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