Я искал, но не смог получить то, что хочу ...Передача структуры между функциями C++
Я делаю маленькую игру. И я получил этот struct
, который содержит данные игрока.
struct Player
{
string name;
int level;
int exp;
int hp; // life
int mp; // mana
int shield;
};
И когда в меню, пользователь выбирает, чтобы начать новую игру, он идет к этой функции:
int StartNewPlayer(string name)
{
Player player;
player.name = name;
player.level = 1;
player.exp = 0;
player.hp = 20;
player.mp = 5;
player.shield = 0;
*pass/return the struct here*
}
Тогда у меня есть функция, которая выводит игровую доску, и где я должен использовать данные из нового игрока структуры, например:
void game_board()
{
cout << "Hello!" << player.name;
(...)
}
Наконец, где-то в main
у меня есть:
int main()
{
StartNewPlayer(new_game());
game_board();
}
, который вызывает все функции выше.
Но я не могу понять это ... Я попытался ссылки, указатели без удачи .. мне нужна помощь здесь, пожалуйста ...
Я получаю эту ошибку компиляции 'ошибка C2360: инициализация «Игрок» пропускается «case» label. Это потому, что игрок Player Player = StartNewPlayer (new_game()); game_board (player); 'находится в переключателе? –
@HenriqueFerrolho Опубликовать код 'switch' будет полезен. Одно из решений заключается в том, чтобы окружить случай в фигурных скобках, как этот «случай 0: {Player player = ...; } break; ' – Pubby
ALRIGHT! : D НАКОНЕЦ! это сделал трюк! не могли бы вы объяснить, почему? Я хотел бы понять ... А также, я сомневаюсь, в этой функции: 'Player StartNewPlayer (имя строки)' что означает 'Player'? это тип возврата? вроде как int? –