[c++] renvoyer des donnees - depuis une fonction ou une classe

salut !

je voudrai savoir quelle est la (ou les) bonne solution pour renvoyer des données depuis une fonction ou une classe.

Il y a return, mais ce ne permet de renvoyer qu’un objet.

comment faire pour renvoyer plusieurs informations, surtout quand on ne sait pas combien a l’avance, et éventuellement de plusieurs types differents?

merci

Une structure (struct) te permet de renvoyer plusieurs informations. mais le nb est défini à l’avance:
struct une_structure{
int a;
int b;
char c;
//
};

Sinon il y a les pointeurs, là c’est dynamique mais tu y stockeras toujours le meme type de données

ok merci je vais reflechier avec ca, peut etre un mix des deux…

Tu vas penser dans tes WC ? :paf:
:wink:

j’ai réfléchié aussi, tu peux aussi retourner des objets, tu créés une classe avec tous les membres dont tu as besoin et tu fais des fonctions permettant de les modifier/lire (acesseurs) et là tu peux faire quelquechose de vraiment dynamique :slight_smile:

mdr le reflechié :slight_smile:

en fait j’ai deja crée une classe avec tous les membres qu’il faut.
le probleme c’est que dans ma classe je veux faire une fonction recherche qui va etre appelé dans mon main et qui va renvoyer des données suivant les parametres passés a ma fonction recherche.
donc les objets a renvoyer dependent de la recherche et les données sont dans des sous-classe.

Pour etre un peu plus precis :

classe A
|
classe B
|
classe C,D

donc j’appelle une fonction recherche de la classe A qui va se charger de fouiller dans les classes B, C et D et qui va renvoyer les resultats…

Edit : est ce que c’est pertinant de creer une autre classe D qui contiendra tous les resultats d’une recherche avec des pointeurs pour rendre ca dynamique. Et donc quand j’appel la fonction recherche dans A, A crée, remplit et renvoi un objet de type D…?

Pour ce que tu veux contre-maitre je dirais qu’on renvoie plutôt une liste de pointeurs sur des objets qu’une structure (évite de créer un champ par objet). Maintenant ça dépend de ce que tu dois faire.

Pour le reste, pas pigé.