В моей программе есть 3
классы, которые взаимодействуют друг с другом и содержат экземпляры друг друга:
class Inventory
{
public:
// Increment Data Members
void incrementHerbs() { herbs++; }
void incrementHealth() { health++; }
void incrementGold() { gold++; }
// Getters
int getHerbs() { return herbs; }
int getHealth() { return health; }
int getGold() { return gold; }
private:
int herbs = 0;
int health = 3;
int gold = 0;
};
class Player
{
public:
void setRow(int row) { this->rowCoordinate = row; }
void setCol(int col) { this->colCoordinate = col; }
int getRow() { return rowCoordinate; }
int getCol() { return colCoordinate; }
Inventory getBag() { return Bag; }
private:
int rowCoordinate;
int colCoordinate;
Inventory Bag;
};
class Board
{
public:
int getNumRows() { return numRows; }
int getNumCols() { return numCols; }
Player getPlayer() { return User; }
private:
int numRows;
int numCols;
char** maze;
Player User;
};
Я только создаю экземпляр объекта Board
в функции main
. В какой-то момент в моей программе я хочу иметь возможность увеличивать счетчик herb
в классе инвентаризации с помощью этого объекта.
Я пытался сделать:
Board board;
board.getPlayer().getBag().incrementHerbs();
Этот вызов компилируется без ошибок, но когда я потом распечатываю счетчик herb
, счетчик herb
остается прежним.
Он не увеличивался. Что может пойти не так и что мне делать?