Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2963 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Fonction qui retourne différent type de valeur.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction qui retourne différent type de valeur.

n°987197
vincent0
Posté le 19-02-2005 à 19:10:05  profilanswer
 

Bonjour,
 
Dans un fichier texte j'ai ceci: "txt,15,truc1,truc2".
 
J'aimerais faire une fonction "lire" qui me fait ceci:
lire(0); ==> retourne txt
lire(1); ==> retourne 15
lire(2); ==> retourne truc1
lire(3); ==> retourne truc2
 
La seul problème c'est que parfois il devra retourner un 'int' ou un 'string'...alors qu'une fonction ne sais retourné qu'un seul type de valeur !
 
Merci d'avance...  
 

mood
Publicité
Posté le 19-02-2005 à 19:10:05  profilanswer
 

n°987237
Joel F
Real men use unique_ptr
Posté le 19-02-2005 à 20:20:40  profilanswer
 

fait un tuc de ce style :
 

Code :
  1. template<typename T>
  2. struct Lecteur
  3. {
  4.     typedef T return_t;
  5.     void DoIt( /* tes paramétres*/ , return_t& retour )
  6.     {
  7.        // ce qui faut pour lire ton machin
  8.        retour = ...;
  9.     }
  10. };


 
specialise ensuite la structure Lecteur pour chaque type qu'il tefaut.
 

Code :
  1. template<> struct Lecteur<string> { ... };


Puis
 

Code :
  1. short monShort;
  2. Lecteur<short>::DoIt( .., monShort );
  3. std::string monString;
  4. Lecteur<std::string>::DoIt( .., monString );


 

n°987242
Taz
bisounours-codeur
Posté le 19-02-2005 à 20:37:20  profilanswer
 

pourquoi une classe ?

n°987262
Joel F
Real men use unique_ptr
Posté le 19-02-2005 à 22:20:02  profilanswer
 

Taz a écrit :

pourquoi une classe ?


 
Si je me rappelles bien,on peut pas specialiser des fonctions template non ???

n°987265
KangOl
Profil : pointeur
Posté le 19-02-2005 à 22:30:56  profilanswer
 

un union suffit :o


---------------
Nos estans firs di nosse pitite patreye...
n°987266
chrisbk
-
Posté le 19-02-2005 à 22:34:09  profilanswer
 

bonjour le typage [:el g]

n°987267
Taz
bisounours-codeur
Posté le 19-02-2005 à 22:36:51  profilanswer
 

KangOl a écrit :

un union suffit :o

[:ban]

n°987268
KangOl
Profil : pointeur
Posté le 19-02-2005 à 22:38:12  profilanswer
 

[:cupra]


---------------
Nos estans firs di nosse pitite patreye...
n°987290
Taz
bisounours-codeur
Posté le 19-02-2005 à 23:36:35  profilanswer
 

Joel F a écrit :

Si je me rappelles bien,on peut pas specialiser des fonctions template non ???


t'as peut être pas besoin de template non plus

n°987296
Joel F
Real men use unique_ptr
Posté le 19-02-2005 à 23:47:49  profilanswer
 

de la bête surcharge aussi c'est vräy :p

mood
Publicité
Posté le 19-02-2005 à 23:47:49  profilanswer
 

n°987298
HelloWorld
Salut tout le monde!
Posté le 19-02-2005 à 23:50:37  profilanswer
 

Pas besoin de template, la surcharge de fonctions fait l'affaire.

Code :
  1. lire( std::istream &, /* OUT */ std::string & );
  2. lire( std::istream &, /* OUT */ int & );
  3. lire( std::istream &, /* OUT */ truc1 & );
  4. lire( std::istream &, /* OUT */ truc2 & );


 
edit: [:benou_grilled]


Message édité par HelloWorld le 20-02-2005 à 00:06:47

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°987301
Taz
bisounours-codeur
Posté le 19-02-2005 à 23:57:46  profilanswer
 

et ça serait bien si ça pouvait lancer des exceptions quand ça marche pas

n°987494
Stroustrup​-Junior
Posté le 20-02-2005 à 09:54:56  profilanswer
 

Sait-il à l'avance quel type il doit retourner ?
 
Joel F > pour suivre ton idée, ne peut on pas faire plus simple ?

Code :
  1. template< typename T >
  2. struct Lecteur
  3. {
  4.     static T Lire( /**param**/ )
  5.     {
  6.        /***/
  7.        return /*T*/;
  8.     }
  9. };

n°987496
Joel F
Real men use unique_ptr
Posté le 20-02-2005 à 10:08:55  profilanswer
 

Stroustrup-Junior a écrit :

Sait-il à l'avance quel type il doit retourner ?
 
Joel F > pour suivre ton idée, ne peut on pas faire plus simple ?

Code :
  1. template< typename T >
  2. struct Lecteur
  3. {
  4.     static T Lire( /**param**/ )
  5.     {
  6.        /***/
  7.        return /*T*/;
  8.     }
  9. };



 
 
Oui aussi ^^


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Fonction qui retourne différent type de valeur.

 

Sujets relatifs
[Résolu !] liste déroulante dépendante (valeur non gardée)Comment créer une fonction personnalisée MAX?
Variables de noms dans un type recordproblème avec fonction FOREACH
Fonction tri qui plante mon codeAfficher une valeur dans un : input type = "file"
[RESOLU] changement de valeur pour un fichier csvPeut etre simple si une fonction existe
fonction javascript pour ouvrir un explorer de fichier 
Plus de sujets relatifs à : Fonction qui retourne différent type de valeur.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR