Ceci est une technique courante pour assurer que tous les constructeurs passent par un seul point pour que vous suffit de changer ce point (il peut avoir d'autres usages, mais je ne suis pas au courant d'entre eux).
Je l'ai vu dans les choses qui utilisent des arguments par défaut tels que:
class Rational {
private:
long numerator;
long denominator;
public:
void Rational (long n, long d) {
numerator = n;
denominator = d;
}
void Rational (long n): Rational (n,1) {}
void Rational (void): Rational (0,1) {}
void Rational (String s): Rational (atoi(s),1) {}
}
Ours avec la syntaxe, je n'ai pas accès à un compilateur ici, mais l'intention de base est de centraliser autant code possible dans ce premier constructeur.
Donc, si, par exemple, vous ajoutez un chèque pour assurer le dénominateur est supérieur à zéro ou le numérateur et le dénominateur sont réduits en utilisant une plus grande méthode de diviseur commun, il que doit se produire à un moment donné dans votre code.
Intéressant. Que se passe-t-il avec le code que vous mettez dans les parenthèses vides? – Svante
Il fonctionne toujours, mais après la dépendance (constructeur principal). – paxdiablo