Je voudrais savoir comment je pourais utiliser le player pour continuer l'histoire sans devoir réécrire le même scénario trois fois pour chaque personnage choisis. Merci d'avance!
- Edité par OlivierLebel2004 3 février 2019 à 17:00:32
Pour insérer du code, il faut utiliser le bouton [</>]. Peux-tu corriger ton post s'il te plait. Sinon pour répondre à ta question. Ce que tu souhaites utiliser c'est un objet qui est peut-être un Elfe, peut-être un Nain ou peut-être un Sorcier. Quel type de variable pourrait être cela? Un pointeur (de préférence intelligent) ou une référence vers une classe qui serait une Base de ces trois types fonctionnerait, un méta-type fonctionnerait aussi mais tu n'a certainement pas encore appris cela. C'est structurellement pas ce qu'il faire mais voilà ce que cela donnerait :
std::unique_ptr<Personnage> choisirPersonnage( int choixPlayer ) { // retourne un pointeur intelligent sur un Personnage
std::unique_ptr<Personnage> personnage_choisi;
if ( choixPlayer == 1 ) {
std::cout << "Vous avez choisi un nain." << std::endl;
personnage_choisi = std::make_unique<Nain>();
}
else if ( choixPlayer == 2 ) {
std::cout << "Vous avez choisi un elfe." << std::endl;
personnage_choisi = std::make_unique<Elf>();
}
else if ( choixPlayer == 3 ) {
std::cout << "Vous avez choisi un sorcier." << std::endl;
personnage_choisi = std::make_unique<Sorcier>();
}
else
return {};
Personnage &player = *personnage_choisi; // ici on a un objet
... ... // 'player' qu'il soit Nain, Elfe ou Sorcier
return personnage_choisi; // mais ne jamais ou oublier qu'un pointeur intelligent en est le propriétaire
}
Pour en apprendre sur les pointeurs intelligents (smart pointers) : certainement pas dans le cours d'OpenClassrooms. Sur internet tu peux te former en français sur le cours de Zeste de Savoir, ou celui de Guillaume Belz programmez_avec_le_langage_c++. Sinon tu as toute la littérature où il faut bien vérifier les indications "C++ moderne" ou "C++11 ou ultérieurs" pour apprendre le C++ récent qui a eu une évolution importante en 2011 (documentation essentiellement en Anglais.)
Explication : dans la fabrique, on enregistre des producteurs qui construisent des objets de différents types.
Pour allouer un nouveau personnage, on le demande à la fabrique en lui indiquant le type et le nom, et ça fait faire le boulot par le bon fabricant.
PS: il y avait des lambdas à la place des Producteur, mais bon, vu que les lambdas se ressemblaient, c'est mieux avec une fonction template.
- Edité par michelbillaud 7 février 2019 à 14:40:31
Utiliser objet non créé
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.
En recherche d'emploi.
En recherche d'emploi.