There's no magic here; in C or C++ a structure can only be 'self referential' as in
"it contains a pointer to that structure that either points to the structure itself
either directly or indirectly through a chain of pointers".
In both C and C++ a structure S can not contain a structure S. Only pointers to
such constructs are allowed (or references).
kind regards,
Jos