Bonsoir,

Alors je suis étudiant en licence, et j'ai commencé le C++ cette année scolaire. En ce moment j'ai un projet à faire en utilisant SFML pour faire un genre de mini RPG avec des fonctions basiques.

Bon, je pense que je m'en sors bien, car je pense finir 3 semaines à l'avance. Mais je suis bloqué à cause d'une seule chose, qui je pense doit être très simple, mais dont je n’arrive pas à trouver la solution.

En gros j'avais une classe Personnage où j'ai voulu instancier tous les monstres et personnages jouables. Sauf que certains ont plus d'attributs que d'autres. De ce fait, je fais en sorte que Personnage est la classe mère avec en fille (Guerrier, Mage, Archer, Troll, Gobelin, ... , XXX). Jusqu'ici tout marche nickel.

Par contre, le joueur peut choisir 3 personnes que sont le Guerrier, l'Archer, le Mage ... Et c'est là que mon problème pointe son nez. Comment dans mon code faire en sorte, qu'importe ce qu'il choisit, cela aura le même nom.

Exemple mon code tourne autour d'une variable appeler Player.

Au début j'ai voulu faire ceci

if(choisis guerrier)
Guerrier Player;
if(choisis archer)
Archer Player;
if(choisis Mage)
Mage Player;

Puis je travaille sur la variable Player.

Sauf que, les variables crées dans un if ne peuvent pas être utilisé dans le reste du code.

Voilà en espérant que dans ce cas il y a une solution. Car sinon j'en est bien une, c'est de supprimer l'héritage. Et là je pourrai créer un objet avec aucune donnée et les remplacer par les données du Héros que le joueur choisis.
Mais, on est forcé de faire l'héritage, du coup j'aimerai comprendre.