Search code examples
c++classoopobjectinstantiation

What could possibly cause this error when declaring an object inside a class?


I'm battling with this assignment :)

I've got two classes: Ocean and Grid.

When I declare an object of the Grid inside the Ocean:

unsigned int sharkCount;
Grid grid;

The compiler/complainer says:

error C2146: syntax error : missing ';' before identifier 'grid'


Can you possibly predict what produces this error with the limited info I provided?

It seems that as if the Ocean doesn't like the Grid class. Could this be because of the poor implementation of the grid class. BTW the Grid has a default constructor.

Yet the error happens in compiling time!.

EDIT: They're each in separate header file, and I've included the Grid.h in the Ocean.h.


Solution

  • My first guess would be that the definition of Grid simply isn't visible at the point that you've tried to use it in Ocean. Typically this happens if you have each in its own file, and haven't used a header to allow each to be "seen" by the other.