У меня есть база class
следующим образом:
template<typename aGamePieceBase> class GamePiece : public aGamePieceBase
{
public:
// Each GamePiece contains a definition of the base class from which it was derived
typedef aGamePieceBase gamePieceBase
// Returns this piece's sprite
virtual sf::Sprite* getSprite()
{
return m_pSprite;
}
protected:
sf::Sprite* m_pSprite;
}
И производное class
:
class Horse : public GameBoard::GamePiece< GameBoard::GamePieceBase >
{
public:
virtual sf::Sprite* getSprite() override
{
// Do stuff
}
};
Однако мне сообщают об этой ошибке при замедлении Horse::getSprite
Функция-член, объявленная с переопределением, не переопределяет член базового класса
Почему getSprite
недоступен в Horse?
GamePieceBase
выглядит следующим образом:
class GamePieceBase : public GameEventHandler
{
public:
// Called when the GamePiece has been added to the GameBoard
template<typename aTileBase> virtual void onPieceCreate( Tile<aTileBase> *startingLocation ){}
// Called when the GamePiece has been removed from the GameBoard
virtual void onPieceRemove(){}
// Called when the user has selected this GamePiece
virtual void onPieceSelect(){}
// Called when the user has de-selected this GamePiece
virtual void onPieceDeselect(){}
// Called when this GamePiece has moved on the board
template<typename originTileBase, typename destinationTileBase> virtual void onPieceMove( Tile<originTileBase>* originTileBase, Tile<destinationTileBase>* pDestinationTile ){}
};
РЕДАКТИРОВАТЬ:
Выходной журнал указывает на наличие внутреннего компилятора error
, но не дает много подробностей. Я сейчас расследую это