![](/img/trans.png)
[英]Declaring struct within another struct and accessing issue when declared as private
[英]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
的不完整类型。 此刻,编译器正在运行“ castNode
, castNode
?那是什么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.