Erreur: L'argument de défaut pour le paramètre 1
-
23-09-2019 - |
Question
Je reçois ce message d'erreur avec le code ci-dessous:
class Money {
public:
Money(float amount, int moneyType);
string asString(bool shortVersion=true);
private:
float amount;
int moneyType;
};
D'abord, je pensais que les paramètres par défaut ne sont pas autorisés en tant que premier paramètre en C ++, mais il est permis.
La solution
Vous redéfinissez probablement le paramètre par défaut dans la mise en œuvre de la fonction. Il ne doit être défini dans la déclaration de fonction.
//bad (this won't compile)
string Money::asString(bool shortVersion=true){
}
//good (The default parameter is commented out, but you can remove it totally)
string Money::asString(bool shortVersion /*=true*/){
}
//also fine, but maybe less clear as the commented out default parameter is removed
string Money::asString(bool shortVersion){
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow