HOWTO: Declare Classes That Refer to Each OtherLast reviewed: October 3, 1997Article ID: Q136005 |
The information in this article applies to:
SUMMARYIn C++, you may need to have two classes that contain data members that refer to the other class as in this example:
class B { A * x; }; class A { B * x; };This article shows by example how to declare two classes that contain pointers to the other class. The two classes (A and B) are derived from other classes (C and D) to better demonstrate this issue. If the two classes are not declared correctly, errors such as the following can occur:
test1.h(8) : error C2501: 'B' : missing decl-specifiers test1.h(8) : error C2143: syntax error : missing ';' before '*' test1.h(8) : error C2501: 'x' : missing decl-specifiers MORE INFORMATION
Sample Code
/* Compile options needed: none */ //================================ // test1.h //================================ #ifndef _a_ #define _a_ class B; class A : public D { B * x; }; #endif //================================ // test2.h //================================ #ifndef _b_ #define _b_ class A; class B : public C { A * y; }; #endif //================================= // test.cpp //================================= class C { int q; }; class D { int p; }; #include "test1.h" #include "test2.h" void main(void) { } |
Additional query words: 8.00 8.00c 9.00 9.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |