C ++中的类定义问题

时间:2011-05-27 16:20:41

标签: c++ class

我在文件board.H中定义了一个类:

class Board
{
private:
    ...

public:
    ...
};

在另一个类中,我希望有一个指向Board对象的成员:

#include "board.H"

class Bear
{
private:
    Board* board;
    ...
public:
    ...
};

当我尝试编译它时(在linux中使用g ++)我收到以下错误:

bear.H:15: error: ISO C++ forbids declaration of `Board' with no type
bear.H:15: error: expected `;' before '*' token

我做错了什么?

2 个答案:

答案 0 :(得分:7)

常见问题。您的“board.H”文件或“board.H”所包含的文件中可能有#include "bear.H"行。

因此,当您将“bear.H”包含在“board.H”中时,会处理“bear.H”文件并尝试包含“board.H”,但该文件已被处理,因此标题保护“bear.H”将不再包含内容。但是,“bear.H”的处理没有领先的“Board”类定义。

答案 1 :(得分:0)

检查命名空间。 如果BoardBear的名称空间不同,则需要在Bear.h中添加:

using <namespace>:: Board;