wake-up-neo.com

Fehler: Standardargument für Parameter 1

Ich erhalte diese Fehlermeldung mit dem folgenden Code:

class Money {
public:
    Money(float amount, int moneyType);
    string asString(bool shortVersion=true);
private:
    float amount;
    int moneyType;
};

Zuerst dachte ich, dass Standardparameter nicht als erster Parameter in C++ erlaubt sind, aber es ist erlaubt.

82
pocoa

Wahrscheinlich definieren Sie den Standardparameter in der Implementierung der Funktion neu. Es sollte nur in der Funktionsdeklaration definiert werden.

//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){
}
179
Yacoby