Ошибка компилятора C4430: отсутствует спецификатор типа - предполагается тип int [дубликат]
этот вопрос уже есть ответ здесь:
У меня есть эта ошибка:
"ошибка C4430: отсутствует спецификатор типа - предполагается тип int. Примечание: C++ не поддерживает default-int"
С этим примером кода:
//A.h
#include "B.h"
class A{
B* b;
..
};
//B.h
#include "A.h"
class B{
A* a; // error error C4430: missing type specifier - int assumed.
};
1 ответов
Это циклическая зависимость вопрос. Для объявления указателя на некоторый класс определение класса не требуется; т. е. тип не должен быть тип.
Поэтому вам не нужно включать A.h
на B.h
, вперед декларации достаточно. Например:
//B.h
class A; // change the include of A.h to forward declaration
class B {
A* a;
};