可能重复:
这是一个继承类的示例,即棋子(pawn)。
最后两种方法是在一个.cpp文件中实现的。显然,每个其他类都与兵棋类相似。
当我尝试编译时,构建器会给出以下错误信息:
我错在哪里了?
可能重复:
Undefined symbols “vtable for …” and “typeinfo for…”?
C++ Undefined Reference to vtable and inheritance
我在大学的一个小项目中遇到了问题。 这是一个简单的国际象棋游戏项目。
当我从抽象类中定义继承类时,出现了“未定义对XXX虚表的引用”的错误... 这是代码:
Pieces.h
class Pieces {
public:
Pieces(char color) : pieceColor(color) {}
virtual ~Pieces() {}
virtual char getPieceType() = 0;
char getColor() {
return pieceColor;
}
virtual bool isLegalMove(int srcRow, int srcCol, int destRow, int destCol, Pieces* board[8][8]) = 0;
private:
virtual bool areSquaresLegal(int srcRow, int srcCol, int destRow, int destCol, Pieces* board[8][8]) = 0;
char pieceColor;
};
这是一个继承类的示例,即棋子(pawn)。
Pawn.h
#include "Pieces.h"
class Pawn: public Pieces {
public:
Pawn(char color) : Pieces(color) {}
~Pawn();
private:
virtual char getPieceType() {
return 'P';
}
bool areSquaresLegal(int srcRow, int srcCol, int destRow, int destCol, Pieces* board[8][8]);
bool isLegalMove(int srcRow, int srcCol, int destRow, int destCol, Pieces* board[8][8]);
};
最后两种方法是在一个.cpp文件中实现的。显然,每个其他类都与兵棋类相似。
当我尝试编译时,构建器会给出以下错误信息:
undefined reference to
vtable for Pawn'`,并且指向构造函数所在的行。Pawn(char color) : Pieces(color) {}
我错在哪里了?