136 votes

Valeur par défaut d'un paramètre lors du passage par référence en C++.

Est-il possible de donner une valeur par défaut à un paramètre d'une fonction alors que l'on passe le paramètre par référence ? en C++.

Par exemple, lorsque j'essaie de déclarer une fonction comme :

virtual const ULONG Write(ULONG &State = 0, bool sequence = true);

Lorsque je fais cela, il y a une erreur :

error C2440 : 'default argument' : impossible de convertir 'const int' en 'unsigned long &'. Une référence qui n'est pas à 'const' ne peut pas être liée à une non-valeur.

0voto

Zhang Points 922

Définir 2 fonctions de surcharge.

virtual const ULONG Write(ULONG &State, bool sequence = true);

virtual const ULONG Write(bool sequence = true)
{
    int State = 0;
    return Write(State, sequence);
}

-3voto

bogdan Points 1

virtual const ULONG Write(ULONG &State = 0, bool sequence = true) ;

La réponse est assez simple et je ne suis pas très doué pour l'expliquer mais si vous voulez passer une valeur par défaut à un paramètre non-const qui sera probablement modifié dans cette fonction, il faut l'utiliser comme ceci :

virtual const ULONG Write(ULONG &State = *(ULONG*)0, bool sequence =
> true);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X