Z
Mechanics schrieb:
std::map<std::string, Hero*> heroes;
heroes["Jim"] = new Jim();
heroes["John"] = new John();
Hundert Instanzen erstellen, wobei man sicher ist, dass man eh nur eine braucht? Eher nicht
Ich sehe aktuell und auch sonst keine Notwendigkeit, das über Ableitung zu machen. Das wäre sogar hinderlich. Mach es wie du schon selbst gemacht hast über eine separate Konfiguration, womit dein Held dann "gefüttert" wird (muss nicht zwingend XML sein). Gerade wenn du grad am testen/balancen bist und ein paar Fähigkeiten des Helden austauschen willst, seine Werte verändern willst, oder auch schnell mal einen neuen Helden basteln willst, willst du nicht ständig dein Programm neu kompilieren müssen. Einfach Datei umschreiben oder neu anlegen, im Programm den Helden laden, fertig.
Da die Fähigkeiten eh wieder Objekte sein sollten, kannst du sie dann trotzdem individuell gestalten, ohne an deinem Helden dafür was ändern zu müssen
-edit-
das würde es an sich sogar vereinfachen, später einen Spielstand zu erstellen. Einfach eine solche Konfigurationsdatei im Savegame ablegen und beim späteren Laden deinen Helden damit wieder initialisieren