comp.lang.ada
 help / color / mirror / Atom feed
From: Julian Day <julianday@geocities.com>
Subject: Re: friend classes in ada95
Date: 2000/04/14
Date: 2000-04-14T00:00:00+00:00	[thread overview]
Message-ID: <38F6D9F0.F0DE08E4@geocities.com> (raw)
In-Reply-To: 38F6B617.34E216A7@emw.ericsson.se

Stefan Folkesson wrote:

> In ADA95, is there a way to make the private part of one class
> accessable from another (see friend classes in C++)?
>

The technique to use is a hierarchical package structure.

package X is
    ...
private
    ...
end X;

package X.Y is
    -- Cannot see X's private part
private
    -- Can see X's private part
end X.Y;

package body X.Y is
    -- Can see X's private part
end X.Y;

>
> The reason I wonder this is because I want to apply the 'Iterator
> Pattern' in my design. This demands that the Iterator object can access
> the attributes of the Aggregate object.
>

Ah, maybe what you really want is the Iterator procedure in your ADT to be
generic, like this:
generic
    with Do_Something ( Item : in out Item_Type);
proceudre Iterator (ADT : in out ADT_Type);

Then you can just instantiate it in your client with what ever procedure
you want...

>
> Is this possible? Is there a pragma to supress the access check or do I
> have to declare the attributes of the Aggregate class in the public part
> of the specification.

Please don't go down that road.

HTH,

Julian

>
>
>
> /Stefan
>





  parent reply	other threads:[~2000-04-14  0:00 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-04-14  0:00 friend classes in ada95 Stefan Folkesson
2000-04-14  0:00 ` swhalen
2000-04-14  0:00 ` Julian Day [this message]
2000-04-14  0:00   ` Steve Folly
2000-04-14  0:00     ` Robert A Duff
2000-04-17  0:00       ` John J. Rusnak
2000-04-18  0:00         ` Vincent Marciante
2000-04-18  0:00           ` John Rusnak
2000-04-18  0:00       ` Steve Folly
2000-04-14  0:00 ` Florian Weimer
2000-04-14  0:00   ` Stefan Folkesson
2000-04-14  0:00 ` John J. Rusnak
2000-04-15  0:00 ` Jeff Carter
2000-04-16  0:00   ` Robert Dewar
2000-04-16  0:00     ` Jeff Carter
2000-04-16  0:00       ` David Botton
2000-04-17  0:00         ` Robert Dewar
2000-04-17  0:00           ` Hyman Rosen
2000-04-17  0:00             ` Robert Dewar
2000-04-16  0:00     ` David Botton
2000-04-17  0:00       ` Robert Dewar
2000-04-17  0:00         ` David Botton
2000-04-18  0:00           ` friend classes in ada95 (long) tmoran
2000-04-18  0:00             ` David Botton
2000-04-18  0:00               ` friend classes in ada95 Stanley R. Allen
2000-04-19  0:00               ` MI, was " tmoran
2000-04-19  0:00                 ` David Botton
2000-04-19  0:00               ` friend classes in ada95 (long) Brian Rogoff
2000-04-19  0:00                 ` Hyman Rosen
2000-04-19  0:00                   ` Brian Rogoff
2000-04-23  0:00                     ` Hyman Rosen
2000-04-23  0:00                       ` Brian Rogoff
2000-04-24  0:00                         ` Hyman Rosen
2000-04-25  0:00                           ` Brian Rogoff
2000-04-25  0:00                             ` Ole-Hjalmar Kristensen
2000-04-19  0:00                 ` David Botton
2000-04-17  0:00         ` friend classes in ada95 David Botton
2000-04-18  0:00       ` Geoff Bull
2000-04-18  0:00         ` Jean-Pierre Rosen
2000-04-18  0:00           ` John Rusnak
2000-04-19  0:00             ` Robert Dewar
2000-04-18  0:00           ` Pascal Obry
2000-04-18  0:00           ` David Botton
2000-04-18  0:00           ` tmoran
2000-04-18  0:00             ` John J. Rusnak
2000-04-19  0:00               ` Geoff Bull
2000-04-19  0:00                 ` Robert Dewar
2000-04-19  0:00                 ` David Botton
2000-04-19  0:00                   ` Robert Dewar
2000-04-20  0:00                     ` Geoff Bull
2000-04-19  0:00                   ` Robert Dewar
2000-04-19  0:00                 ` Ehud Lamm
2000-04-19  0:00                 ` Jeff Susanj
2000-04-19  0:00                   ` Robert Dewar
2000-04-19  0:00                     ` Jeff Carter
2000-04-19  0:00                       ` Ray Blaak
2000-04-20  0:00                         ` Jean-Pierre Rosen
2000-04-20  0:00                           ` Ray Blaak
2000-04-20  0:00                             ` Jean-Pierre Rosen
2000-04-24  0:00                               ` Ray Blaak
2000-04-20  0:00                           ` Robert Dewar
2000-04-20  0:00                             ` Jean-Pierre Rosen
2000-04-20  0:00                             ` BSCrawford
2000-04-20  0:00                             ` Brian Rogoff
2000-04-20  0:00                         ` Robert Dewar
2000-04-20  0:00                           ` Ray Blaak
2000-04-20  0:00                             ` Charles Hixson
2000-04-21  0:00                               ` Jean-Pierre Rosen
2000-04-29  0:00                                 ` Aidan Skinner
2000-04-29  0:00                                   ` Robert I. Eachus
2000-04-21  0:00                               ` Jon S Anthony
2000-04-20  0:00                       ` Robert Dewar
2000-04-20  0:00                         ` Jeff Carter
2000-04-21  0:00                           ` Robert Dewar
2000-04-21  0:00                             ` Jon S Anthony
2000-04-22  0:00                               ` Robert Dewar
2000-04-21  0:00                             ` Ken Garlington
2000-04-19  0:00                   ` Bill Greene
2000-04-19  0:00                   ` tmoran
2000-04-19  0:00               ` Jean-Pierre Rosen
2000-04-19  0:00               ` Robert Dewar
2000-04-18  0:00         ` David Botton
2000-04-17  0:00     ` Robert I. Eachus
2000-04-18  0:00       ` Robert Dewar
2000-04-19  0:00         ` Robert I. Eachus
2000-04-20  0:00           ` Robert Dewar
2000-04-20  0:00             ` Ray Blaak
2000-04-23  0:00             ` Robert I. Eachus
2000-04-19  0:00     ` Alfred Hilscher
2000-04-19  0:00       ` Ray Blaak
2000-04-19  0:00         ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox