On Mon, 24 Feb 2003, Thomas Dodd wrote: > I had a question for a C++ programmer. Thought I might find one here :) > > > I have 2 classes that need to reference each other. > > "headerA.h" class B; // Forward declaration of class B. > class A{ > public: > int x; > int y; > B *left; > B *right; > } > > "headerB.h" class A; // Forward declaration of class A. > class B{ > public: > int a; > int b; > A *parent; > char foo(); > } > > Give that top is of type A, in top.left.foo() I need to modify top.right.a > > Any ideas? I've tried passing a A* in the constructor for B, but the > compiler doesn't > realize that A is a class when I try to compile, and complains about no > type listed. > > I seams to be a circular reference since A needs B and B needs A. This > cannot be that > unusual, and has probably been solved before, I just don't know how. > > Right now moy only though is to make parent a void* and the cast it to a > A* in the > implementation of B. That removes all type checking though and I'd > rather not abuse > void pointers like that. > > -Thomas > > > > > -- Matthew Saltzman Clemson University Math Sciences mjs@clemson.edu http://www.math.clemson.edu/~mjs -- Psyche-list mailing list Psyche-list@redhat.com https://listman.redhat.com/mailman/listinfo/psyche-list