-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Mon, 24 Feb 2003 10:20:45 -0600, 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 A{ > public: > int x; > int y; > B *left; > B *right; > } > > "headerB.h" > 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. Since only pointers to A and B are involved, a forward declaration class A; in front of class B and class B; in front of class A should suffice. - -- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE+WlSa0iMVcrivHFQRAq/CAJ9qO0tcn/7aASaBfNq0pHS90MaDtwCeK9L8 cqMZBjr4PmuD/eYlzLZPEx4= =47QX -----END PGP SIGNATURE----- _______________________________________________ Redhat-devel-list mailing list Redhat-devel-list@redhat.com https://listman.redhat.com/mailman/listinfo/redhat-devel-list