void Player::move(Board &board, Solver &solver){
Position* best = solver.find_best_move(&board);
cout<<"Score: "<<best->get_score()<<endl;
cout<<"Board: ";
best->get_board()->print_board();
board = *(best->get_board());
Board * b(best->get_board());
cout<<"TEST: ";
b->print_board();
board = *b;
}
関数を呼び出した後、実際のボード参照を新しいボードと等しくしようとしています。Boardは抽象クラスであり、get_board()はBoardへのポインターを返しますが、実際には、追加の属性を持つboardのサブクラスです。ただし、move関数が呼び出された後、ボードはmoveの呼び出し前と同じボードになります。実際の値を変更しながら、抽象スーパークラスへのポインターにサブクラスを割り当てることは可能ですか?スライスの問題が発生しているようです。