2014-02-27 2 views
1

переживаю ошибка компиляции, когда я пытаюсь сделать этоУпорядочение структуры

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

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

Компилятор жалуется, что не может найти родителя в struct Child, но поменяв их порядок не помогло. Компилятор будет жаловаться, что не может найти Child в Parent. Как решить эту ошибку и почему ошибка не была подсвечена, когда я писал программу.

+0

хех слишком поздно ответ .. но я должен добавить не используйте Parent !!! если вы используете приложение GUI, то Parent обычно является зарезервированным словом для родителя окна/приложения ... – Spektre

ответ

6

Вы можете добавить forward declaration:

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

только для полноты, обратите внимание, что вы не сможете это сделать, если P не был указателем на родителя, но если это был экземпляр родителя. –

+0

yep, а также все еще недействительный * может использоваться вместо родителя * или ребенка * ... – Spektre

+0

Большое спасибо. Вы спасли меня!! –

1

Вам необходимо переслать объявить Родитель, прежде чем использовать его в STRUCT Клиент:

struct Parent; 

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

struct Parent{ 
    char Name[8]; 
    Child *C; 
}; 
Смежные вопросы