From: "Robert I. Eachus" <rieachus@attbi.com>
Subject: Re: Ada 200X
Date: Mon, 02 Jun 2003 14:23:22 GMT
Date: 2003-06-02T14:23:22+00:00 [thread overview]
Message-ID: <3EDB5DBE.4070807@attbi.com> (raw)
In-Reply-To: CWf6f1lA7+Qo@eisner.encompasserve.org
Larry Kilgallen wrote:
> I am not the original poster, but the case where I find this troublesome
> is trying to replace a method for a parent type with enhanced code to:
>
> 1. Do something special
>
> 2. Do whatever the method for the parent type would do
>
> 3. Do something else special
>
> The lack of a construct to specify "corresponding method of ancestor"
> seems to me to be what breaks information hiding.
Oh, that is so easy that I never thought of people having problems with
it. I'll give an example:
type Foo is tagged...
procedure Bar(F: in out Foo);
...
type New_Foo is new Foo with...
procedure Bar(F: in out New_Foo);
...
procedure Bar(F: in out New_Foo) is
begin
Do(Something_Special);
Bar(Foo(F)); -- view conversion
Do(Something_Else_Special);
end Bar;
The view conversion passes the Foo part of a New_Foo object to the
parent Bar by reference. So the parent operation only sees the parts of
the New_Foo object that it knows about. When writing Initialize,
Adjust, and Finalize operations for controlled types, this idiom is
pretty standard.
In my experience I have never needed access discriminants, but some
smart people say they are needed for compatibility with other OO languages.
next prev parent reply other threads:[~2003-06-02 14:23 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-01 21:36 Ada 200X And838N
2003-06-02 2:22 ` Bobby D. Bryant
2003-06-02 4:20 ` Robert I. Eachus
2003-06-02 11:22 ` Larry Kilgallen
2003-06-02 14:09 ` Hyman Rosen
2003-06-02 14:23 ` Vinzent Hoefler
2003-06-02 14:59 ` Hyman Rosen
2003-06-02 15:04 ` Vinzent Hoefler
2003-06-02 15:18 ` Bill Findlay
2003-06-02 15:32 ` Larry Kilgallen
2003-06-02 15:41 ` Vinzent Hoefler
2003-06-02 15:07 ` Larry Kilgallen
2003-06-02 15:04 ` Larry Kilgallen
2003-06-02 14:23 ` Robert I. Eachus [this message]
2003-06-02 14:31 ` Vinzent Hoefler
2003-06-02 15:05 ` Larry Kilgallen
2003-06-02 15:06 ` Hyman Rosen
2003-06-02 21:05 ` Robert I. Eachus
2003-06-02 22:59 ` Larry Kilgallen
2003-06-03 4:07 ` Robert I. Eachus
2003-06-03 7:52 ` Jean-Pierre Rosen
2003-06-03 9:09 ` Vinzent Hoefler
2003-06-03 14:54 ` Robert I. Eachus
2003-06-04 7:38 ` Vinzent Hoefler
2003-06-05 7:20 ` Robert I. Eachus
2003-06-02 5:36 ` Wesley Groleau
2003-06-02 8:02 ` Preben Randhol
2003-06-02 10:50 ` Georg Bauhaus
2003-06-03 2:29 ` Steve
2003-06-03 2:45 ` Gautier Write-only
2003-06-03 8:38 ` Vinzent Hoefler
2003-06-03 11:48 ` Preben Randhol
2003-06-03 12:14 ` Lutz Donnerhacke
2003-06-03 12:35 ` Preben Randhol
2003-06-07 21:16 ` Craig Carey
2003-06-08 11:14 ` Martin Dowie
2003-06-09 14:07 ` Craig Carey
2003-06-13 14:20 ` Matthew Heaney
2003-06-13 14:00 ` Matthew Heaney
2003-06-03 17:24 ` Robert A Duff
2003-06-03 17:45 ` Preben Randhol
2003-06-03 17:48 ` Preben Randhol
2003-06-03 18:05 ` Vinzent Hoefler
2003-06-04 10:36 ` Preben Randhol
-- strict thread matches above, loose matches on Subject: below --
2004-10-31 1:51 David Botton
2004-10-31 7:33 ` Martin Dowie
2004-10-31 18:59 ` Jeffrey Carter
2002-12-26 16:17 Ada 200x Adrian Hoe
2002-12-27 19:32 ` Randy Brukardt
2002-12-27 20:55 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox