我正在用C ++实现国际象棋游戏,其中一些类是“ Board”和“ Piece”。
从“ Piece”继承的类有“ Rook”,“ King”等。
因此,一块木板是一块2D阵列,因此board.h中包含piece.h。
对于最近的开发(在实施动作方面),我想让各个部分进入董事会。
所以在piece.h中,我包括board.h。
现在,这会产生上述错误。
一些代码:
//Function in piece.h
#include "board.h"
bool Piece::move( int toX, int toY, bool enemyPawn, const Board & b )
错误:板未命名类型
错误:ISO C ++禁止声明没有类型的“ b” [-fpermissive]
最佳答案
由于move仅使用参考,因此您可以肯定地避免包含board.h,而仅向前声明您的Class Board。如果您真的需要对电路板有一定的了解,而对电路板也有一定的了解,则可以向Board声明一个接口类(纯抽象),并包括该接口而不是Board以确保将Board派生自该接口。
关于c++ - 错误:未命名类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7810773/