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

  FORUM HardWare.fr
  Programmation
  C++

  Comment retourner un tableau (SVP)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment retourner un tableau (SVP)

n°904717
protoinou
Posté le 22-11-2004 à 14:56:14  profilanswer
 

Bonjour, j'ai une méthode getValues, qui doit retourné un tableau de string, ... je voudrais savoir la syntaxe pour retourner le tableau ...
 
Merci :jap:  

mood
Publicité
Posté le 22-11-2004 à 14:56:14  profilanswer
 

n°904726
cris56
Posté le 22-11-2004 à 14:59:59  profilanswer
 

on peut pas retourner/passer un tableau en parametre
tu peux retourner un reference sur le tableau si il existe dans le contexte d'appel

n°904727
Taz
bisounours-codeur
Posté le 22-11-2004 à 15:01:21  profilanswer
 

vector<string> f()
{
  vector<string> values;
  ////
 
  return values;
}
 
et on en parle plus

n°904730
protoinou
Posté le 22-11-2004 à 15:07:58  profilanswer
 

Bon ok on ne peut pas retourner un tableau, on retourne le pointeur sur ce tableau c'est ça ?
 
Je peux expliquer le contexte axacte ?
 
Bon c'est parti, en fait je fais deux classes, Element et ListeChainée .. La liste chainée contient des éléments.
 
Bon dans liste chainé j'ai une méthode qui enregistre les valeurs d'un element dans un stream (Pour enregistrement dans un fichier, ou pour afficher à l'écran, )
 
Mais voilà element est une classe mère de class comme client, stock, en gros des classes quo pourront se retouver dans une liste chainnée.
 
Et j'ai donc une méthode getValues qui hérite de la méthde getValues de ELement (Virtual) , alors comment faire ?

n°904732
Taz
bisounours-codeur
Posté le 22-11-2004 à 15:09:12  profilanswer
 

/me fuit

n°904733
protoinou
Posté le 22-11-2004 à 15:10:15  profilanswer
 

Faut pas faire un new pour le vector ???  

n°904735
protoinou
Posté le 22-11-2004 à 15:10:42  profilanswer
 

Taz reste aide moi !

n°904739
HelloWorld
Salut tout le monde!
Posté le 22-11-2004 à 15:12:31  profilanswer
 

vector c'est un conteneur qui se charge de tout pour toi.
http://c.developpez.com/faq/cpp/?page=STL#STL_vector


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°904743
protoinou
Posté le 22-11-2004 à 15:21:55  profilanswer
 

Bah ouai je sais ce que c un vector, mais je ne sais pas comment le retourner dans un méthode virtuelle  

n°904781
HelloWorld
Salut tout le monde!
Posté le 22-11-2004 à 15:54:54  profilanswer
 

protoinou a écrit :

Bah ouai je sais ce que c un vector, mais je ne sais pas comment le retourner dans un méthode virtuelle


Ben sans vouloir te vexer je crois bien que tu ne sais pas très bien ce qu'est un vector alors.
Un vector ça se renvoie comme un int. C'est plus gros c'est tout. Tu peux le recevoir en paramètre par référence sinon.
La virtualité n'a rien à voir là dedans.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 22-11-2004 à 15:54:54  profilanswer
 

n°906034
Panini
Posté le 23-11-2004 à 20:59:00  profilanswer
 

Soit dit en passant, retourner un tableau, c'est très bof niveau perf.

n°906038
protoinou
Posté le 23-11-2004 à 21:04:06  profilanswer
 

Bon alors que faut il faire dans ce cas là ?

n°906059
matafan
Posté le 23-11-2004 à 21:27:43  profilanswer
 

Taz, t'es sur que ca marche ton truc qui retourne un objet automatique ?

n°906061
cris56
Posté le 23-11-2004 à 21:30:41  profilanswer
 

pourquoi ca marcherait pas ?

n°906065
matafan
Posté le 23-11-2004 à 21:35:11  profilanswer
 

Parce qu'un objet automatique est detruit quand tu sort du bloc. Mais en fait j'imagine que ca recopie quand tu fais le return. C'est ca ?

n°906070
protoinou
Posté le 23-11-2004 à 21:39:28  profilanswer
 

Bah proposer ce que vous fairiez ???
 
Ca m'aidera mooi pauvre mortel perdu dans toute cette complexité

n°906072
Joel F
Real men use unique_ptr
Posté le 23-11-2004 à 21:40:54  profilanswer
 

matafan a écrit :

Parce qu'un objet automatique est detruit quand tu sort du bloc. Mais en fait j'imagine que ca recopie quand tu fais le return. C'est ca ?


 
oui

n°906073
cris56
Posté le 23-11-2004 à 21:41:07  profilanswer
 

matafan> il est retourneé par valeur donc copie (appel du constructeur de copie)
 
protoinou> tu peux le passer par reference (et le retourner par reference)

n°906118
nraynaud
lol
Posté le 23-11-2004 à 22:31:26  profilanswer
 

Code :
  1. int[] f() {
  2.   int tab[10];
  3.   return tab;
  4. }


---------------
trainoo.com, c'est fini
n°906187
HelloWorld
Salut tout le monde!
Posté le 23-11-2004 à 23:45:40  profilanswer
 

Panini a écrit :

Soit dit en passant, retourner un tableau, c'est très bof niveau perf.


Oui. On peut ruser avec swap :

Code :
  1. vector<string> f();
  2. vector<string> v;
  3. f().swap( v );


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°906262
protoinou
Posté le 24-11-2004 à 08:37:07  profilanswer
 

ca fait quoi swap ?

n°906267
Taz
bisounours-codeur
Posté le 24-11-2004 à 08:45:54  profilanswer
 

RTFM

n°906285
protoinou
Posté le 24-11-2004 à 09:23:52  profilanswer
 

O K

n°906297
blackgodde​ss
vive le troll !
Posté le 24-11-2004 à 09:30:38  profilanswer
 

HelloWorld a écrit :

Oui. On peut ruser avec swap


 
ou un auto_ptr, ils sont la pour ca


---------------
-( BlackGoddess )-
n°906316
Taz
bisounours-codeur
Posté le 24-11-2004 à 09:51:36  profilanswer
 

au nom surtout pas les auto_ptr ! avec le transfert de propriété inhérent à chaque affectation/copie, c'est le meilleur moyen de se perdre !
 
le mieux, c'est encore d'avoir un bon compilateur capable d'optimiser ce genre de cas au mieux, après c'est sur que si c'est vraiment gros, un passage par référence genre
 
void fill(vector<string> &values);
 
peut être plus judicieux

n°906319
blackgodde​ss
vive le troll !
Posté le 24-11-2004 à 09:55:52  profilanswer
 

bin les auto_ptr n'ont pas été désigné justement pour des cas comme ca ? sinon pourquoi ont-ils été fait ?


---------------
-( BlackGoddess )-
n°906320
Lam's
Profil: bas.
Posté le 24-11-2004 à 09:58:13  profilanswer
 

BlackGoddess a écrit :

bin les auto_ptr n'ont pas été désigné justement pour des cas comme ca ? sinon pourquoi ont-ils été fait ?


Je sais pas pour quoi ils ont été fait, mais moi je ne m'en sert que pour l'exception-safety.

n°906321
blackgodde​ss
vive le troll !
Posté le 24-11-2004 à 10:00:28  profilanswer
 

l'exception safety => pour que l'objet alloué soit détruit dans le cas d'une exception lancée qui remonte ? (donc l'auto_ptr sortira de la portée, destructeur exécuté)


---------------
-( BlackGoddess )-
n°906326
Lam's
Profil: bas.
Posté le 24-11-2004 à 10:04:09  profilanswer
 

BlackGoddess a écrit :

l'exception safety => pour que l'objet alloué soit détruit dans le cas d'une exception lancée qui remonte ? (donc l'auto_ptr sortira de la portée, destructeur exécuté)


Exactement.  
 
Les auto-ptr ont été entourés de querelles de clocher lors de leur conception, et au final, on a pris un compromis en terme de sémantique, ce qui fait qu'ils sont limite inutiles.  
 
Pour tout ce qui est shared pointers, il faut une fois de plus se tourner vers boost.

mood
Publicité
Posté le   profilanswer
 


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

  Comment retourner un tableau (SVP)

 

Sujets relatifs
[HTML] Problème tout bête à propos d'un tableau.appel procedure ac tableau
[JAVA] (débutant) Copier un tableau à deux dimensionscompteur gratuit pour mon site (aide svp)
Trier un tableau de fichierAfficher tableau en ligne...... explications inside !
[C++] Tableau de pointeur de tableauQ. Datacrunching: "Décroiser" un tableau croisé Excel en VBA
tableau de session / foreach[resolu]Taille maximale de tableau
Plus de sujets relatifs à : Comment retourner un tableau (SVP)


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