2013-09-28 4 views
0

, если у меня есть класс книга, имеющая два -структурымогут две структуры, определенные в одном классе, могут обращаться друг к другу?

struct A{ 
    B *ptr; //it says identifier undefined 
}; 
struct B{ 

}; 

Оба определены в одном классе. возможно ли сохранить указатель структуры B в структуре A, как я упомянул выше? может кто-нибудь помочь PLZ?

+2

Put 'структура B' до' STRUCT Ā'. – us2012

+0

спасибо alot =) работал для меня – sara

+4

[alot] (http://hyperboleandahalf.blogspot.co.uk/2010/04/alot-is-better-than-you-at-everything.html). – jrok

ответ

2

Вам просто нужно объявить struct B первый:

struct B; 
struct A{ 
    B *ptr; //it says identifier undefined 
}; 
struct B{ 

}; 
3

В C++ все символы должны быть объявлены до их использования. Поэтому просто создайте структуру B до структуры A.

1

Помещенный

struct B; 

первый, и вы сделали. Это сообщает компилятору, что будет B.

1

Да, вы должны: declare the structure name before - - - - - - Структура, в которой вы используете экземпляр.

struct B; // declared before struct A, now the problem is gone. 

struct A{ 
    B *ptr; //it says identifier undefined 
}; 


struct B{ 

}; 
1

место стойки В перед STRUCT А.

class book 
{ 
struct B 
{ 

}; 
struct A 
{ 
B * ptr;   
}; 

}; 

место структура B Befor STRUCT А.

Смежные вопросы