c++ - 在类中声明对象时可能会导致此错误的原因是什么?

标签 c++ class oop objectinstantiation

我正在为这个作业而苦恼:)

我有两个类: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/

相关文章:

c++ - 交替使用类作为浮点指针

Python - 我需要了解旧式类吗?

python - 从Python中的静态方法调用非静态方法

python - 使用 python 面向对象方法的游戏开发。

c++ - 对象 C 的排序列表;选择字段

.net - 从非特定的 .NET 应用引用特定于平台的库

java - 筛选并上传 Java 类在本地工作,但不能在线工作。没有任何错误。怎么了?

javascript - 在 Javascript OOP 中调用嵌套函数

c++ - 从文本文件中读取单词和数字 (c++)

c++ - 如何在 Windows 或 Linux、32 或 64 位、静态或动态的 Visual Studio 或 g++ 下编译 Qt 5