订购结构

时间:2014-02-27 08:36:41

标签: c++ struct

我尝试这样做时遇到编译错误

 struct Child{
    char Name[8];
    Parent *P;
 };

 struct Parent{
    char Name[8];
    Child *C;   
 };

编译器抱怨它在struct Child中找不到Parent,但是交换他们的命令没有帮助。编译器会抱怨它在Child中找不到Parent。如何解决此错误以及为什么在编写程序时错误未突出显示。

2 个答案:

答案 0 :(得分:6)

您可以添加forward declaration

struct Parent;   //forward declaration
struct Child{
    char Name[8];
    Parent *P;
};

答案 1 :(得分:1)

您需要在struct Client中使用它之前转发声明Parent:

struct Parent;

struct Child{
   char Name[8];
   Parent *P;
};

struct Parent{
   char Name[8];
   Child *C;   
};