It means that either you forgot to define this virtual function of your Piece class or you did not include a module that contains the definition in your project.
In class Piece, did you declare your virtual function as virtualbool CheckValidMove(int CurrRow, int CurrCol, int DestRow, int DestCol, Piece* Square[][8]);
or
virtualbool CheckValidMove(int CurrRow, int CurrCol, int DestRow, int DestCol, Piece* Square[][8]) = 0;
If the former, you still need to implement the method Piece::CheckValidMove(...)
You should probably change it to the latter, forcing all sub classes to implement this method.