繁体   English   中英

在另一个结构中声明一个结构

[英]declaring a struct in another struct

在我的头文件中:

private:
struct movieNode {
    string title;

    castNode *castHead;

    movieNode *prev;
    movieNode *next;
};

struct castNode {
    string name;

    castNode *next;

};

movieNode *head;
movieNode *last;

但是编译器错误是:

预期的';' 在“ *”令牌之前

我的目标是每个movieNode应该有一个标题和一个演员表(带有castNode)。 提前致谢。

movieNode至少需要能够看到一个称为castNode的不完整类型。 此刻,编译器正在运行“ castNodecastNode ?那是什么castNode ?” 因为它还没有看到castNode的定义。 你可以通过简单地定义避免在这种情况下castNode定义之前 movieNode 只需交换两个结构。

在其他情况下,如果你有一个循环依赖(如果castNode有一个指向movieNode太,例如),您可以使用预先声明,以提供完整类型(它看起来像class castNode;然后正确地定义它后来。

private:
     struct castNode; // <- add this
     struct movieNode
     {
             string     title;
             castNode*  castHead;
             movieNode* prev;
             movieNode* next;
     };
     struct castNode
     {
             string    name;
             castNode* next;
     };
     movieNode*   head;
     movieNode*   last;

castNode之前声明movienode

只有到那时, movienode知道castNode是什么。

暂无
暂无

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

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