我正在为这个作业而苦恼:)
我有两个类:Ocean 和 Grid。
当我在 Ocean 中声明一个 Grid 对象时:
unsigned int sharkCount;
Grid grid;
编译器/提示器说:
error C2146: syntax error : missing ';' before identifier 'grid'
您能根据我提供的有限信息预测是什么导致了这个错误吗?
好像Ocean不喜欢Grid类。这可能是因为网格类的实现不佳。顺便说一句,网格有一个默认的构造函数。
然而错误发生在编译时!
编辑:它们各自位于单独的头文件中,我已将 Grid.h 包含在 Ocean.h 中。
最佳答案
我的第一个猜测是 Grid
的定义在您尝试在 Ocean
中使用时根本不可见。通常,如果您将每个文件都放在自己的文件中,并且没有使用 header 来让每个文件都被另一个文件“看到”,就会发生这种情况。
关于c++ - 在类中声明对象时可能会导致此错误的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2887167/