编译器在前向结构声明中给出错误

dan*_*nn_ 1 c++ struct

我有一个这样的代码,我不能把"struct node"放在"struct mnode"之上所以我把它声明在顶部,如下所示.
但是编译器说字段n的类型不完整.
如何在顶部正确声明一个结构?

struct node;
struct mnode{
    int j;
    node n;
};
struct node{
    int k;
};
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 5

对于类类型的类成员,您需要一个定义.声明不会.因此,在这种情况下,完整定义node已来过mnode.

前向声明仅在不需要完整定义时起作用 - 指针或引用成员,返回类型或方法参数.