Cześć ;)
Mam 2 klasy: Engine i Player. W klasie Player mam enum(prywatne), które mówi w jakim "stanie" jest postać:
enum Status {
IDZ,
STOJ,
BIEG
};
Chcę zmienić wartość tego enum na przykładowe IDZ. Próbowałem napisać funkcję z poziomu klasy Engine:
player.status_change("IDZ");
A w samej klasie Player:
**Player.h**
void status_change(std::string stat);
**Player.cpp**
void Player::status_change(std::string stat)
{
status=(Status)stat;
}
Wyświetlił mi się błąd kompilacji: error: invalid cast from type 'std::string {aka std::basic_string<char>}' to type 'Player::Status'
Przeczytałem, że stringa nie da się bezpośrednio zamienić na enum. Znalazłem tutaj jakieś rozwiązanie(C#, ale bym spróbował napisać w C++ ): http://www.cezarywalenciuk.pl/post/2011/11/22/String-i-enum-C-konwersja-string-na-enum.aspx
Ale czy nie da się tego zrobić w jakiś prostszy sposób?