Je suis désolé, je ne le fais pas exprès, mais je suis obligé de le dire : "ce cours n'est pas a jour".
C'est une technique que je vous recommande d'utiliser
quand vous le pouvez, c'est-à-dire presque toujours (c'est
aussi la technique que nous utiliserons dans ce cours).
Les recommandations pour ecrire ce code :
class Personnage
{
public:
Personnage(); //Constructeur
private:
int m_vie;
int m_mana;
std::string m_nomArme;
int m_degatsArme;
};
Personnage::Personnage()
{
m_vie = 100;
m_mana = 100;
m_nomArme = "Épée rouillée";
m_degatsArme = 10;
}
sont en réalité d'ecrire :
class Personnage
{
public:
Personnage() = default; // inutile ?
private:
int m_vie { 100 };
int m_mana { 100 };
std::string m_nomArme { "Épée rouillée" };
int m_degatsArme = 10;
};
(Voire ne pas mettre le constructeur par défaut, si on ne déclare que ce conctructeur)
Initialiser les membres en même temps que les déclarer n'est pas incompatible avec un constructeur paramétré: la liste d'initialisation va prendre le pas sur la valeur par défaut.
Et sinon, la liste d'initialisation n'est pas une technique, mais un moyen d'initialiser les membres. Réaffecter un membre dans le constructeur revient à faire une initialisation en 2 étapes.
std::string s;
s = "Hockety pockety wockety wock !";
Une initialisation en deux temps, qui suppose au passage que la donnée membre considérée a un constructeur par défaut.
Ca explique, dans certains cours, la manie de définir des constructeurs par défaut même quand ils n' ont pas de sens.
Constructeur d'affectation sans implémentation
× 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.
Discord NaN. Mon site.
Discord NaN. Mon site.
Discord NaN. Mon site.