1

我有下面的类,它继承自 Collection 类,其中定义了我需要稍后在下面的派生类中实现的虚函数。除了派生类的构造函数之外,我还没有在 .cpp 文件中包含成员函数的定义。但是,当我构建我的项目时,我收到以下错误消息

'{' token| 之前的预期类名

我已经尝试了所有我知道的尝试,并且需要帮助来理解我的代码中的错误以及如何修复它。

    #ifndef VARIABLEARRAY_H
#define VARIABLEARRAY_H

#include "Collection.h"

using namespace std;

class VariableArray: public Collection{ 

        int* list[];// dynamic array that is resized on demand

    public:
        VariableArray();

};
#endif

任何帮助将不胜感激。

4

3 回答 3

1

你确定Collection你的翻译单位已经看到了这个符号吗?

您可能需要添加:

#include "Collection.h"

(或任何正确的名称)在类定义之前。

于 2012-04-23T23:41:16.823 回答
0

我认为您也可以转发声明 Collection:

class Collection;

class VariableArray : public Collection {
....
};
于 2012-04-23T23:44:32.243 回答
0

您如何确定Collection编译器是否可用?class声明是否显示Collection在文件的预处理输出中VariableArray.cpp,或者相应的源文件是什么?

查看预处理的输出可以帮助您确定:

  • 如果命名空间污染是一个问题(例如#define与 碰撞Collection
  • 如果Collection声明在您的声明之前确实可用VariableArray

如果这不是命名空间污染问题,我会检查您是否#include在多个头文件中使用相同的保护。

于 2012-04-23T23:58:43.410 回答