У меня есть такой код (все сделано для минимального воспроизводимого примера):
enum class gameState{
Normal,
Special};
class Piece{
public: Vector2i position;
int shape;};
class Board{
public: int array[8][8];
std::vector<Piece> f;
Board() : f(std::vector<Piece>(32)) {}; };
void promotion(int shape, gameState &state, Board &b){
state = gameState::Special;
b.array[b.f[0].position.x][b.f[0].position.y] = shape;
b.f[0].shape = shape;};
И затем я пытаюсь вызвать их в основном:
int main(){
gameState state = gameState::Normal;
Board b;
promotion(1, state, b);
return 0;};
Проблема в том,что он, кажется, правильно передается по ссылке для объекта gameState state
, он не изменяет объект Board b
, чего не должно быть. Как правильно передать Board b
по ссылке (или указателю)?
PS: Vector2f
- это просто двумерный вектор, используемый библиотекой SFML.