liste d'objets d'une class , est ce possible ??? - C++ - Programmation
Marsh Posté le 15-10-2002 à 20:33:25
Un truc comme ca :
Code :
|
Marsh Posté le 15-10-2002 à 20:46:17
y a aussi vector et quelques autres du genre.
Sinon sous C++Builder y a aussi TList et TObjectList
Marsh Posté le 15-10-2002 à 21:00:26
c'est tres gentille de votre part.
est ce possible d'appeler les methodes de la class maclass?
exp:
#include <list>
class MaClass
{
public:
int a;
void getA();
};
int main()
{
std::list<MaClass> liste;
liste.getA(); // est ce correcte ??
liste.a.push_front(12); // est ce correcte ??
return 0;
}
merci bcp
Marsh Posté le 15-10-2002 à 21:05:08
Le problème ici est que :
Tu veux appeler la méthode de ta classe sur tous les éléments de la liste ? Ou sur un seul élément en particulier ?
il faut bien voir que ta liste va peut etre contenir 1000 ou 2000 objets de maClass alors il faudra spécifier sur lequel agir.
Marsh Posté le 15-10-2002 à 21:14:56
bon , je veux appeler la methode d'un objet , donc faut-il declarer la liste des objet ? et puis la question qui se pose comment repêcher ces objets pour les remplir par exemple ?
Ou bien si tu as une idée meilleure , je suis preneur .
je t'avoue que mon prof esr incapable de m'expliquer ce point .
merci
Marsh Posté le 15-10-2002 à 23:43:09
Citation :
|
c'est pas bon, liste est du type std::list<MaClass> donc ne possede pas de methode getA(), ni d'attribut a. Si tu veux obtenir les objets contenus dans la liste, utilise un iterateur:
Code :
|
Citation : liste.a.push_front(12); // est ce correcte ?? |
c'est pas correct non plus.
MaClass unObj;
unObj.a = 12;
liste.push_front(unObj);
Marsh Posté le 16-10-2002 à 00:52:04
Code :
|
Voilà le principe général...
Marsh Posté le 16-10-2002 à 16:36:54
Musaran a écrit a écrit :
|
Au moins une critique à ton exemple: en regle generale si un ctor prend un seul parametre, on met un explicit devant et on fait pas appel aux fonctionalités de conversion implicites pq un jour elles vont forcement te retomber sur la tronche et tu va passer 2 jours à essayer de trouver ton bug qui est planqué bien au chaud...
dans ton code, j'ecrirais:
Code :
|
Marsh Posté le 17-10-2002 à 03:51:20
C'est vrai pour une classe ExplosionThermonucleaire, on ne veut pas la voir surgir à moins de l'appeler explicitement.
C'est faux pour une classe MonEntier, on veut pouvoir écrire ME+1.
Pour MaClasse, va savoir...
Marsh Posté le 15-10-2002 à 20:24:55
la synthaxe :
#include "maClass.h"
liste <maClass> obj1; //est ce correcte ??
vous me feriez un ultime plaisire de me montrer comment le faire
mercie bcp ...