Я новичок в C ++, поэтому я не уверен, правильно ли я поступаю, но мой вопрос:
Как я могу получить доступ и изменить переменную, которая определена внутриструктура, которая находится внутри карты, из другого файла .cpp?
Часть моего файла .h:
struct Borough {
std::string name = "";
int num_players = 0;
Borough(std::string n) : name(n) {}
friend inline bool operator< (const Borough& lhs, const Borough& rhs){ return (lhs.name < rhs.name); }
friend inline bool operator==(const Borough& lhs, const Borough& rhs){ return (lhs.name == rhs.name); }
};
class Graph {
public:
typedef std::map<Borough, Vertex *> vmap;
vmap walk;
};
И (часть) файла player.cpp:
#include <iostream>
#include <stack>
#include "player.h"
void Player::move() {
std::string current_loc = get_location();
std::cout << "\nWhere do you want to move to?" << std::endl;
display_branches(current_loc);
std::string selected_location;
std::getline(std::cin, selected_location);
// verification and placement of player:
if (verify_location(current_loc, selected_location)) {
set_location(selected_location);
// HERE IS WHERE I WANT TO MAKE Borough::num_players++;
std::cout << m_graph.walk.find(selected_location)->first.num_players << " <-- That's the number of players.\n";
}
}
Я знаю, что могу отобразить число, но я хочу изменить его, увеличивая на +1, когда игрок успешно "перемещается" туда.