Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > parametres par defaut d'une fonction > Lecture du sujet

parametres par defaut d'une fonction

valeur par defaut pour une reference

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne Canigou # Posté le 23/07/2008 à 22:54:43
Groupe : Membres
Bonjour,

J'aimerais savoir comment on fait pour donner une valeur par défaut à un paramètre de fonction qui est une référence sur un objet.

Exemple :

Code : C++
1
void MaFonction(type1 parametre1, type2& parametre2 = ???, type3& parametre3 = ???);


Mon problème, vous l'aurez compris, est que je n'ai pas la moindre idée de ce qu'il faut que je mette à la place des "???".
Je pourrais contourner ce problème en utilisant des pointeurs, je remplacerai alors les "???" par NULL... Mais j'aimerais pouvoir utiliser des références...
Donc si vous savez par quoi je dois remplacer mes "???" pour donner une valeur par defaut à mes références, vous m'enleveriez une vilaine épine du pied ^^

Merci d'avance.
Hors ligne Ice_Keese # Posté le 23/07/2008 à 22:56:59
Indeed
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
La réponse: la même chose que si ne n'était pas une référence.

Quelques liens utiles:
SGI STL / H-Deb / C++ FAQ LITE
 
Hors ligne Canigou # Posté le 23/07/2008 à 23:11:22
Groupe : Membres
C'est à dire ?
Les rares fois où j'ai eu besoin de faire des fonctions avec des paramètres par défaut, les paramètres en question étaient des int, il me suffisait donc de mettre "= 0"... mais là les paramètres par défaut sont des références sur des objets...
Il faut donc que leur paramètre par défaut soit un objet ??? o_O
Je vais quand même pas être obligé de créer un objet juste pour le passer en paramètre par défaut ???

Je crois que je n'ai rien compris en fait :euh: ...
Hors ligne bombadil # Posté le 23/07/2008 à 23:16:36
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Je penses que tu peux faire :
Code : C++
1
void mafonction(Objet& ref = Objet())



Hors ligne Canigou # Posté le 23/07/2008 à 23:22:23
Groupe : Membres
Malheureusement non, je ne peux pas faire ça...
J'ai essayé et le compilateur m'a insulté en me disant :

error: invalid initialization of non-const reference of type 'Objet&' from a temporary of type 'Objet'

edit 1: Je viens seulement de comprendre où cette insulte du compilateur voulait en venir :D ...

j'ai rajouté "const" devant mon parametre et je n'ai plus de problème !

Merci !

edit 2: (J'obtiens donc comme fonction: )
Code : C++
1
void MaFonction(const Objet& ref = Objet());
Édité le 23/07/2008 à 23:37:28 par Canigou

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 390 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.022s (0.0072s)