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
Libérer: 2024-12-20 19:28:13
original
785 Les gens l'ont consulté

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);
Copier après la connexion

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);
Copier après la connexion

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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal