Lors du passage de paramètres par référence, il n'est généralement pas possible de fournir une valeur par défaut. Cependant, il existe une exception à cette règle pour les références constantes.
Considérez la déclaration de fonction suivante :
virtual const ULONG Write(ULONG &State = 0, bool sequence = true);
Ce code entraînera une erreur car C n'autorise pas les valeurs temporaires (comme la valeur par défaut de 0) pour être lié à des références non const.
Solution pour Constant Références
Pour les références constantes, il est possible de fournir une valeur par défaut. En effet, le compilateur peut garantir que la référence ne sera pas modifiée.
virtual const ULONG Read(const ULONG &State = 0, bool sequence = true);
Solution de contournement pour les références non constantes
Bien que les valeurs par défaut ne puissent pas être attribuées à des références non constantes -const références, il existe une solution de contournement en utilisant une instance statique :
static int AVAL = 1; void f( int &x = AVAL ) { // stuff }
La fonction f peut désormais être appelée avec ou sans un paramètre, avec la valeur par défaut de AVAL utilisée lorsqu'aucun paramètre n'est fourni. Cependant, cette approche a une utilisation pratique limitée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!