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 sí está permitido.

Respuestas a la pregunta(1)

Su respuesta a la pregunta