在我的头文件中:
private:
struct movieNode {
string title;
castNode *castHead;
movieNode *prev;
movieNode *next;
};
struct castNode {
string name;
castNode *next;
};
movieNode *head;
movieNode *last;
但是编译器错误是:
我的目标是每个movieNode应该有一个标题和一个 Actor 表(带有castNode)。
提前致谢。
最佳答案
movieNode
至少需要能够看到称为castNode
的不完整类型。此刻,编译器正在运行“呵呵,castNode
?这到底是什么?”因为它还没有看到castNode
的定义。在这种情况下,您可以通过在定义castNode
之前简单地定义movieNode
来避免这种情况。只需交换两个结构。
在其他情况下,如果您具有循环依赖项(例如,如果castNode
也有指向movieNode
的指针),则可以使用前向声明提供不完整的类型(看起来像class castNode;
),然后在以后正确定义它。