From: danmcleran@hotmail.com
Subject: Re: Possible Ada deficiency?
Date: 31 Dec 2004 17:52:49 -0800
Date: 2004-12-31T17:52:49-08:00 [thread overview]
Message-ID: <1104544369.712132.159910@z14g2000cwz.googlegroups.com> (raw)
In-Reply-To: <iwhBd.13518$RH4.6189@newsread1.news.pas.earthlink.net>
Jeffrey Carter wrote:
> danmcleran@hotmail.com wrote:
>
> > In C++ and Java, no private data can be seen by child classes. I
think
> > that Ada would benefit from extending its information hiding
> > capabilities by allowing a package writer to conceal type
information
> > from child packages.
>
> You're confusing C++ classes with Ada packages. In C++, classes serve
a
> multitude of purposes, including encapsulation, information hiding,
type
> extension, and dynamic dispatching. In Ada, encapsulation, name space
> control, and information hiding are handled by packages. Type
extension
> and dispatching are handled by tagged types.
>
> Private components in C++ prevent the components from being visible
to
> derived types. This is also possible in Ada:
>
> package P is
> type T is tagged private;
>
> procedure Op (A : in out T);
> private -- P
> type T is tagged record
> I : Integer := 0;
> end record;
> end P;
>
> with P;
> package Q is
> type T is new P.T with record
> F : Float := 0.0;
> end record;
>
> procedure Op_2 (A : in out T);
> end Q;
>
> package body Q is
> procedure Op_2 (A : in out T) is
> -- null;
> begin -- Op_2
> A.I := 2; -- Illegal.
> end Op_2;
> end Q;
>
> Child packages in Ada provide the equivalent of friends in C++; thus,
> the private part of a package is akin to protected in C++, with the
> package body corresponding to C++'s private.
There's one problem with this analogy. In C++, a class grants
friendship status to other classes and/or functions. In Ada, a child
package assumes friendship with the parent package whether the parent
likes it or not.
next prev parent reply other threads:[~2005-01-01 1:52 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-31 18:15 Possible Ada deficiency? danmcleran
2004-12-31 19:12 ` Jeffrey Carter
2005-01-01 1:52 ` danmcleran [this message]
2005-01-01 2:37 ` Jeffrey Carter
2005-01-01 2:02 ` danmcleran
2005-01-01 14:11 ` Martin Krischik
2005-01-01 15:27 ` danmcleran
2005-01-02 17:49 ` Martin Krischik
2005-01-01 15:30 ` Stephen Leake
2005-01-01 15:57 ` danmcleran
2005-01-03 23:37 ` Randy Brukardt
2005-01-07 17:26 ` Nick Roberts
2005-01-07 18:26 ` danmcleran
2005-01-07 21:32 ` Randy Brukardt
2005-01-08 3:56 ` Nick Roberts
2005-01-08 18:15 ` Robert A Duff
2005-01-08 19:11 ` Jeffrey Carter
2005-01-08 20:03 ` Robert A Duff
2005-01-09 3:40 ` Jeffrey Carter
2005-01-09 17:30 ` Robert A Duff
2005-01-09 19:24 ` Jeffrey Carter
2005-01-09 21:56 ` Nick Roberts
2005-01-10 13:47 ` Dmitry A. Kazakov
2005-01-10 16:46 ` Duncan Sands
2005-01-10 17:58 ` Pascal Obry
2005-01-10 18:45 ` Dmitry A. Kazakov
2005-01-10 19:44 ` Pascal Obry
2005-01-11 10:05 ` Dmitry A. Kazakov
2005-01-11 7:24 ` Vinzent 'Gadget' Hoefler
2005-01-11 9:48 ` Dmitry A. Kazakov
2005-01-11 13:57 ` Vinzent 'Gadget' Hoefler
2005-01-11 21:52 ` Robert A Duff
2005-01-12 11:22 ` Dmitry A. Kazakov
2005-01-09 17:23 ` danmcleran
2005-01-09 17:46 ` Robert A Duff
2005-01-10 3:05 ` danmcleran
2005-01-09 18:41 ` Nick Roberts
2005-01-09 19:06 ` Martin Krischik
2005-01-09 20:10 ` Robert A Duff
2005-01-09 20:15 ` Robert A Duff
2005-01-11 14:13 ` Possible Ada deficiency? (goto) Peter Hermann
2005-01-11 14:54 ` Nick Roberts
2005-01-11 22:15 ` Robert A Duff
2005-01-12 10:17 ` Peter Hermann
2005-01-15 17:34 ` Robert A Duff
2005-01-15 17:58 ` Dmitry A. Kazakov
2005-01-15 19:34 ` Robert A Duff
2005-01-10 20:15 ` Possible Ada deficiency? Randy Brukardt
2005-01-10 21:51 ` Robert A Duff
2005-01-11 20:23 ` Randy Brukardt
2005-01-11 21:24 ` Robert A Duff
2005-01-12 19:57 ` Randy Brukardt
2005-01-02 15:51 ` Adrian Hoe
2005-01-04 16:06 ` Peter Hermann
2005-01-01 23:36 ` tmoran
2005-01-02 3:38 ` danmcleran
2004-12-31 19:16 ` Martin Dowie
2005-01-01 2:32 ` Jeffrey Carter
2004-12-31 23:23 ` Nick Roberts
2005-01-01 1:56 ` danmcleran
2005-01-01 11:43 ` Dmitry A. Kazakov
2005-01-01 15:46 ` danmcleran
2005-01-01 17:58 ` Larry Kilgallen
2005-01-01 19:43 ` danmcleran
2005-01-02 0:36 ` Ed Falis
2005-01-02 3:36 ` danmcleran
2005-01-02 15:53 ` Ed Falis
2005-01-07 18:31 ` danmcleran
2005-01-07 18:44 ` Pascal Obry
2005-01-07 19:29 ` danmcleran
2005-01-07 21:28 ` Pascal Obry
2005-01-01 23:28 ` danmcleran
2005-01-02 10:26 ` Dmitry A. Kazakov
2005-01-02 15:51 ` danmcleran
2005-01-03 23:48 ` Randy Brukardt
2005-01-01 14:06 ` Martin Krischik
2005-01-01 15:53 ` danmcleran
2005-01-07 21:33 ` Robert A Duff
2005-01-09 17:15 ` danmcleran
2005-01-09 17:38 ` Robert A Duff
2005-01-10 3:16 ` danmcleran
2005-01-09 18:41 ` Martin Dowie
2005-01-10 3:18 ` danmcleran
2005-01-10 20:32 ` Randy Brukardt
2005-01-10 21:42 ` danmcleran
2005-01-10 21:36 ` Robert A Duff
2005-01-10 21:44 ` danmcleran
2005-01-09 19:01 ` Jeffrey Carter
2005-01-10 3:20 ` danmcleran
2005-01-10 22:16 ` Robert A Duff
2005-01-10 22:29 ` danmcleran
2005-01-11 20:12 ` Georg Bauhaus
2005-01-11 20:30 ` danmcleran
2005-01-11 21:44 ` Robert A Duff
2005-01-11 0:06 ` Jeffrey Carter
2005-01-11 0:46 ` Robert A Duff
2005-01-11 20:37 ` danmcleran
2005-01-11 21:08 ` Robert A Duff
2005-01-17 4:40 ` Tucker
2005-01-18 13:46 ` danmcleran
2005-01-18 21:29 ` Nick Roberts
2005-01-24 17:23 ` danmcleran
-- strict thread matches above, loose matches on Subject: below --
2004-12-31 19:06 danmcleran
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox