Compiler Error C4430: Missing Type Specifier - Int Assumed [Duplicate]

Compiler Error C4430: Missing Type Specifier - Int Assumed [Duplicate]

I have this error:

"error C4430: missing type specifier - int assumed. Note: C++ does not support default-int"

with this code example :

//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.
};
4

1 Answer

This is a circular dependency issue. For declaring a pointer to some class, the definition of the class is not needed; i.e. the type doesn't have to be a complete type. So you don't need to include A.h in B.h, forward declaration is enough. Such as:

//B.h
class A; // change the include of A.h to forward declaration
class B { 
    A* a;
};
3
David Miller
Author

David Miller

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.