Example of Circular Dependencies in C++
Implementation of circular dependencies in C/C++ can be a bit tricky, because any class or structure definition must be placed above its usage in the same file. A circular dependency between classes A and B will thus both require the definition of A to be placed above B, and the definition of B to be placed above A, which of course is impossible. A forward declaration trick is therefore needed to accomplish this.
The following example illustrates how this is done.
- File a.h:
- File b.h:
- File main.cpp:
Note that although a name (e.g. A
) can be declared multiple times, such as in forward declarations, it can only be defined once (the One Definition Rule).
Read more about this topic: Circular Dependency
Famous quotes containing the word circular:
“Oh Lolita, you are my girl, as Vee was Poes and Bea Dantes, and what little girl would not like to whirl in a circular skirt and scanties?”
—Vladimir Nabokov (18991977)