this code in c++
#include <iostream>
using namespace std;
int main()
{ return 0; }
struct X;
struct Y;
struct Y
{ X ox; };
struct X
{ Y oy; };
gives error as:"field `ox' has incomplete type"
this code in c++
#include <iostream>
using namespace std;
int main()
{ return 0; }
struct X;
struct Y;
struct Y
{ X ox; };
struct X
{ Y oy; };
gives error as:"field `ox' has incomplete type"
three chairs rule
Basically you can resolve without using a pointer because a pointer (or reference) is the only thing you can declare in the presence of an incomplete type and either X or Y must be incomplete at the time the other is declared.
Any reason you don't want to use a pointer?
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.