comp.lang.ada
 help / color / mirror / Atom feed
From: Magnus.Kempe@di.epfl.ch (Magnus Kempe)
Subject: Re: Mut. Recurs. in Ada9X w/o Breaking Encaps.?
Date: 30 Sep 1994 10:20:56 GMT
Date: 1994-09-30T10:20:56+00:00	[thread overview]
Message-ID: <1994Sep30.111050@di.epfl.ch> (raw)
In-Reply-To: CwwKwM.Cnq@inmet.camb.inmet.com

stt@spock.camb.inmet.com (Tucker Taft) writes:
: 
: The type conversion toward the end of your example is
: illegal (at least according to *our* Ada 9X front end ;-).

Damn.  Thanks.  Here's a fix, which is also accepted by GNAT :-)
Is your Ada 9X front end a program, or a human?

private
package Company.Offices.Ptrs is
  function Ptr (The_Office : Office_Reference)
    return Office_Pointer;
end Company.Offices.Ptrs;

package body Company.Offices.Ptrs is
  function Ptr (The_Office : Office_Reference)
    return Office_Pointer is
  begin
    -- here we "see" that Office is derived from Office_Parent
    return Office_Pointer (The_Office);
  end Ptr;
end Company.Offices.Ptrs;

with Company.Employees.Ptrs;
with Company.Offices.Ptrs;
package body Company.Common is
  function Office_Occupied_By (The_Employee : in Employees.Employee)
    return Offices.Office_Pointer is
  begin
    return Offices.Ptrs.Ptr (Employees.Ptrs.Office_of (The_Employee));
  end Office_Occupied_By;
  ...
end Company.Common;

: In any case, to me it is much simpler to declare abstract
: versions of Employee and Office in the same package, with appropriately
: mutually recursive (abstract) operations declared there as well.

I agree, but John Volan wanted something else...  My solution completely
avoids showing abstract and/or class-wide stuff to the client.

-- 
Magnus Kempe		"I know not what course others may take, but as for me,
Magnus.Kempe@di.epfl.ch  Give me Liberty... or give me Death!" -- Patrick Henry



  reply	other threads:[~1994-09-30 10:20 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-09-27 16:52 Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG) John Volan
1994-09-27 18:48 ` Mark A Biggar
1994-09-29  1:46   ` John Volan
1994-09-29 13:57     ` Tucker Taft
1994-09-29 17:20       ` Bjarne Stroustrup <9758-26353> 0112760
1994-09-30  1:38         ` Tucker Taft
1994-09-30 12:33           ` Bjarne Stroustrup <9758-26353> 0112760
1994-09-29 18:37       ` John Volan
1994-09-29 19:34         ` David Weller
1994-09-30 22:13           ` John Volan
1994-10-02  3:31             ` Andrew Lees
1994-09-30  1:47         ` Tucker Taft
1994-09-30 13:30           ` John Volan
1994-09-29 18:10     ` R. William Beckwith
1994-10-03  0:33     ` Cyrille Comar
1994-09-28 14:01 ` Norman H. Cohen
1994-09-29  2:12   ` John Volan
1994-09-29 14:01     ` Tucker Taft
1994-09-29 18:37     ` Norman H. Cohen
1994-09-29  9:48   ` Magnus Kempe
1994-09-29 13:10     ` Magnus Kempe
1994-09-29 18:05       ` Tucker Taft
1994-09-30 10:20         ` Magnus Kempe [this message]
1994-09-30 13:22           ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? Tucker Taft
1994-10-01  1:24       ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG) Adam Beneschan
1994-10-01 12:01         ` Magnus Kempe
1994-10-01 18:43         ` Mark A Biggar
1994-10-02 16:41         ` John Volan
1994-10-02 23:33           ` Matt Kennel
1994-10-03  8:07           ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? Magnus Kempe
1994-10-03 12:14           ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG) Robert I. Eachus
1994-10-04  2:12             ` R. William Beckwith
1994-10-04 16:00             ` John Volan
1994-10-05 11:42               ` Robert I. Eachus
1994-10-05 21:09               ` Matt Kennel
1994-10-03 20:29           ` Harry Koehnemann
1994-09-29 13:35     ` John Volan
1994-09-30 20:27       ` Norman H. Cohen
1994-10-01  1:47         ` John Volan
1994-10-01 20:44           ` Tucker Taft
1994-10-03 11:29           ` Robert I. Eachus
1994-09-30 22:46       ` Matt Kennel
1994-10-01  2:11         ` John Volan
replies disabled

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