Peut-on appeler un constructeur depuis un autre constructeur en C++ ? (Chaînage de constructeurs)
Bonjour, collègues ! Je suis un développeur C++ débutant et j'ai rencontré un problème qui me semble très étrange. J'ai une classe avec plusieurs constructeurs. Ils font tous la même chose : initialiser les champs, allouer de la mémoire, mais avec des paramètres différents. Par exemple, un constructeur prend un nom et un âge, un autre seulement le nom (âge par défaut 0), un troisième ne prend rien du tout (tout par défaut).
Voici un code simplifié de ce que j'essaie de faire :
class Person {
public:
std::string name;
int age;
// Constructeur avec deux paramètres
Person(const std::string& n, int a) : name(n), age(a) {
// une initialisation complexe, par exemple une vérification de l'âge
if (age < 0) age = 0;
std::cout << "Person created: " << name << ", " << age << std::endl;
}
// Constructeur avec un paramètre
Person(const std::string& n) {
// Je veux appeler ici Person(n, 0), mais cela ne fonctionne pas
}
}