error: argumento predeterminado dado para el parámetro 1

Recibo este mensaje de error con el siguiente código:

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

Primero pensé que los parámetros predeterminados no están permitidos como primer parámetro en C ++, pero está permitido.

Probablemente esté redefiniendo el parámetro predeterminado en la implementación de la función. Solo debe definirse en la statement de función.

 //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){ } 
    Intereting Posts