Maison >développement back-end >C++ >Les références C peuvent-elles avoir des valeurs de paramètres par défaut ?

Les références C peuvent-elles avoir des valeurs de paramètres par défaut ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 19:28:13781parcourir

Can C   References Have Default Parameter Values?

Valeurs des paramètres par défaut pour les références en C

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn