在下面的代码中,我收到此编译器错误error C2236: unexpected 'class' 'Pawn'. Did you forget a ';'?,但是正如您可以清楚地看到的那样,我没有缺少分号...是吗?我曾经认为这是由于循环依赖性而引起的问题,但是我删除了向量旁边的所有include。该类也应该从我的Piece类继承,但是即使删除了该类,我仍然会收到错误消息。

#ifndef CHESS_PAWN_H
#define CHESS_PAWN_H

#include <vector>

class Pawn {
private:
    bool _hasMoved;

public:
    Pawn(int x, int y);
    ~Pawn();

    std::vector<int> availMoves();
};

#endif


关于我在这里做错的任何建议吗?

最佳答案

推断,您的Chess.cpp文件可能如下所示:

#include "piece.h"
#include "pawn.h"
//etc..


缺少的分号位于piece.h中。标准预处理器损失。

10-04 14:43