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 als erster Parameter in C ++ nicht erlaubt sind, aber es ist erlaubt.
Antworten:
Wahrscheinlich definieren Sie den Standardparameter in der Implementierung der Funktion neu. Es sollte nur in der Funktionsdeklaration definiert werden.
quelle
bool shortVersion
Parameter noch beibehalten , entfernen oder kommentieren Sie einfach die= true
std::string Money::asString(bool)
. Beachten Sie, dass der Name des Parameters nicht einmal enthalten ist. In der Tat können Sie in der Deklaration andere Namen als in der Definition verwenden. (Dies ist in großen Projekten wichtig, wenn Sie - aus welchen Gründen auch immer - den Namen in der Definition ändern möchten, aber nicht Millionen von Codezeilen neu kompilieren möchten, die von der Deklaration abhängen.)