From: koehnema@enuxsa.eas.asu.edu (Harry Koehnemann)
Subject: Re: Mut. Recurs. in Ada9X w/o Breaking Encaps.? (LONG)
Date: Mon, 3 Oct 1994 20:29:00 GMT
Date: 1994-10-03T20:29:00+00:00 [thread overview]
Message-ID: <Cx468E.I6x@ennews.eas.asu.edu> (raw)
In-Reply-To: 1994Oct2.164105.13127@swlvx2.msd.ray.com
In article <1994Oct2.164105.13127@swlvx2.msd.ray.com> jgv@swl.msd.ray.com (John Volan) writes:
>
>That's my fear as well. That's why I've been trying very hard to find
>an Ada9X solution. Eiffel can do decoupled mutual recursion standing on its
>head. Smalltalk virtually swims in a sea of decoupled mutual recursion
>(trivial in a typeless language). I suspect C++ can actually manage it as well.
>(Can any C++ folks confirm this? Realize what I mean: Can you forward-declare
>a class and then *not* complete its declaration in the same header file, and
>yet complete the declaration of a client class? Or do you *have* to declare
>both classes in the same header file?)
Yes. See the example.
class A;
Class B {
A *a; // legal
...
a -> print(); // illegal
};
However, the body of B cannot perform any operations on 'a' since they
are not visible. I think this would also work in Ada9X, except that
multiple pointer declarations would be incompatible with one another
due to Ada's typing mechanism.
From what I remember of Eiffel and Smalltalk (it's been a while), one
can invoke an operation from a class that has not yet been declared.
However, both C++ and Ada9X require a function (or operation) be
declared before it be used. I think this is the feature you seek,
which is more than simply a forward declaration.
Hope this helps.
--
Harry Koehnemann Arizona State University
hek@asu.edu Computer Science Department
next prev parent reply other threads:[~1994-10-03 20:29 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 ` Mut. Recurs. in Ada9X w/o Breaking Encaps.? Magnus Kempe
1994-09-30 13:22 ` 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 [this message]
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