繁体   English   中英

错误C2079:'X :: x'使用未定义的结构'T'

[英]error C2079: 'X::x' uses undefined struct 'T'

以下示例是错误的,因为X使用未定义的struct T

struct T;

struct X {

    X() { }

    T x;
};

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

    X *w;

};

int main() { }

我可以解决此问题的一种方法是在struct X使用指针成员,而不是将T *x作为完整类型。 有什么棘手的方法可以解决此问题而无需更改代码中的任何类型?

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

struct X;

struct T
{
    T();

    X *w;

};

struct X {

    X() { }

    T x;
};

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

int main() { }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM