在我的头文件中:

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;),然后在以后正确定义它。

09-06 15:08