comp.lang.ada
 help / color / mirror / Atom feed
From: Vinzent Hoefler <ada.rocks@jlfencey.com>
Subject: Re: Ada 200X
Date: Mon, 02 Jun 2003 16:31:49 +0200
Date: 2003-06-02T16:31:49+02:00	[thread overview]
Message-ID: <bbfn73$8buuf$1@ID-175126.news.dfncis.de> (raw)
In-Reply-To: 3EDB5DBE.4070807@attbi.com

Robert I. Eachus wrote:

>Larry Kilgallen wrote:
>
>> 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.

Yeah, but what happens if you insert

|type Baz is new Foo with ...
|
|procedure Bar (F : in out Baz);
|
|type New_Foo is new Baz with ...

is that you have to change every single view conversion in New_Foo's
methods from

|Bar (Foo (F));

to

|Bar (Baz (F));

Because the view conversion to a grandparent is of course allowed,
this is little tricky if not to say error prone sometime.

Well, yes, I know, you should always design your object hierarchy
beforehand. ;-)


Vinzent.

-- 
Parents strongly cautioned  --  this  posting  is  intended for mature
audiences  over  18.  It  may  contain some material that many parents
would not find suitable for children and may include intense violence,
sexual situations, coarse language and suggestive dialogue.



  reply	other threads:[~2003-06-02 14:31 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
2003-06-02 14:31       ` Vinzent Hoefler [this message]
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