Wywołanie obiektu po wpisaniu stringa

0

Witam. Mam problem

int main()
{
    Postac Gracz;
    Gracz.sila = 9;
    string a;
    cin>>a;
}

Teraz chcialbym aby po wpisaniu w string A "Gracz" (lub jakakolwiek inna nazwe obiektu, poniewaz jest ich duzo wiecej) pokazala sie sila gracza jak w przypadku gdy zrobimy cout<<Gracz.sila<<endl;
Tylko w tej sytuacja zalezy mi zeby zamiast Gracz byl tam string A.
Czy jest mozliwe uzyskanie takiego efektu?

1

Dynamicznie nie, musisz zrobić to na własną rękę:

if (a == "siła") {
  cout << gracz.sila;
} else {
  cout << "Nieznana właściwość: " << a;
}
0

Po kompilacji, nazwy których użyłeś w kodzie nie są przechowywane. Musisz jakoś zmapować stringi i adresy obiektów albo możesz np. graczowi dodać pole z nazwą i jakoś iterować po kolekcji graczy sprawdzając, czy nazwa się zgadza.

1
std::map<std:string,Gracz>

albo

std::map<std:string,Gracz*>

twoim przyjacielem jest

Gdybym to robił, zintegrował bym z aplikacją w C++ język Lua, ale to nie jest temat na początek. Interpreter obiektów / wyrażeń idealnie taki, jak sobie wyobrażasz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1