C++ 错误C2079:&x27;X::X';使用未定义的结构';T';

C++ 错误C2079:&x27;X::X';使用未定义的结构';T';,c++,incomplete-type,C++,Incomplete Type,以下示例出错,因为X使用了未定义的struct struct T; struct X { X() { } T x; }; struct T { T() { w = new X(); } X *w; }; int main() { } 解决这个问题的一种方法是在struct X中使用指针成员,而不是像T*X那样使用完整类型。在不改变任何代码类型的情况下,有什么棘手的方法来解决这个问题吗?交换它们并概述T的构造函数。这样,T和X在需要的地方都是完整的

以下示例出错,因为
X
使用了未定义的
struct

struct T;

struct X {

    X() { }

    T x;
};

struct T
{
    T() { w = new X(); }

    X *w;

};

int main() { }

解决这个问题的一种方法是在
struct X
中使用指针成员,而不是像
T*X
那样使用完整类型。在不改变任何代码类型的情况下,有什么棘手的方法来解决这个问题吗?

交换它们并概述
T
的构造函数。这样,
T
X
在需要的地方都是完整的

struct X;

struct T
{
    T();

    X *w;

};

struct X {

    X() { }

    T x;
};

T::T() { w = new X(); }

int main() { }

也许先定义T,因为X似乎只使用指向X的指针。