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

  FORUM HardWare.fr
  Programmation
  C++

  liste d'objets d'une class , est ce possible ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

liste d'objets d'une class , est ce possible ???

n°228384
NathalieCo​m
Posté le 15-10-2002 à 20:24:55  profilanswer
 


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 ...

mood
Publicité
Posté le 15-10-2002 à 20:24:55  profilanswer
 

n°228388
Kristoph
Posté le 15-10-2002 à 20:33:25  profilanswer
 

Un truc comme ca :
 

Code :
  1. #include <list>
  2. class MaClass
  3. {
  4. public:
  5.  int a;
  6. };
  7. int main()
  8. {
  9. std::list<MaClass> liste;
  10. return 0;
  11. }


n°228392
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-10-2002 à 20:46:17  profilanswer
 

y a aussi vector et quelques autres du genre.
 
Sinon sous C++Builder y a aussi TList et TObjectList


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°228396
NathalieCo​m
Posté le 15-10-2002 à 21:00:26  profilanswer
 

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

n°228397
Kristoph
Posté le 15-10-2002 à 21:05:08  profilanswer
 

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.

n°228402
NathalieCo​m
Posté le 15-10-2002 à 21:14:56  profilanswer
 

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

n°228467
wpk
Posté le 15-10-2002 à 23:43:09  profilanswer
 

Citation :


Code :
  1. int main() 
  2.     std::list<MaClass> liste; 
  3.    
  4.     liste.getA(); // est ce correcte ??  
  5.     liste.a.push_front(12); // est ce correcte ??  
  6.     return 0; 
  7. }

 


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 :
  1. std::list<MaClass>::iterator it = liste.begin();
  2. std::advance(it, 5); //pour acceder avancer sur le 5eme element
  3. (*it).getA(); //te donne le a du 5e element


 

Citation :

liste.a.push_front(12); // est ce correcte ??  


c'est pas correct non plus.
 
MaClass unObj;
unObj.a = 12;
liste.push_front(unObj);


Message édité par wpk le 15-10-2002 à 23:43:59
n°228483
Musaran
Cerveaulté
Posté le 16-10-2002 à 00:52:04  profilanswer
 

Code :
  1. #include <list>
  2. class MaClass{
  3. int a; //privé, sinon pourquoi un accesseur ?
  4. public:
  5. int b;
  6. int getA(){ //get renvoyait void...
  7.  return a;
  8. }
  9. MaClass(int init){ //constructeur
  10.  a= init;
  11.  b= init*2;
  12. }
  13. };
  14. int main(){
  15. std::list<MaClass> liste;
  16. liste; //la liste
  17. liste.front(); //illégal, la liste est vide !
  18. liste.push_back(12); //12 converti en objet via le constructeur, objet mis dans la liste.
  19. liste.front(); //l'objet devant dans la liste
  20. liste.front().b; //attribut de cet objet
  21. liste.front().b= 11; //changer cet attribut
  22. liste.front().getA(); //appel de l'accesseur de cet objet
  23. return 0;
  24. }


Voilà le principe général...


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°228785
wpk
Posté le 16-10-2002 à 16:36:54  profilanswer
 

Musaran a écrit a écrit :

Code :
  1. #include <list>
  2. class MaClass{
  3. int a; //privé, sinon pourquoi un accesseur ?
  4. public:
  5. int b;
  6. int getA(){ //get renvoyait void...
  7.  return a;
  8. }
  9. MaClass(int init){ //constructeur
  10.  a= init;
  11.  b= init*2;
  12. }
  13. };
  14. int main(){
  15. std::list<MaClass> liste;
  16. liste; //la liste
  17. liste.front(); //illégal, la liste est vide !
  18. liste.push_back(12); //12 converti en objet via le constructeur, objet mis dans la liste.
  19. liste.front(); //l'objet devant dans la liste
  20. liste.front().b; //attribut de cet objet
  21. liste.front().b= 11; //changer cet attribut
  22. liste.front().getA(); //appel de l'accesseur de cet objet
  23. return 0;
  24. }


Voilà le principe général...




 
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 :
  1. class MaClasse
  2. {
  3. explicit MaClasse(int init)
  4. {
  5. ...
  6. }
  7. ...
  8. };
  9. int main(){
  10. std::list<MaClass> liste;
  11. liste.push_back(MaClass(12));
  12. return 0;
  13. }

n°229155
Musaran
Cerveaulté
Posté le 17-10-2002 à 03:51:20  profilanswer
 

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...


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

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

  liste d'objets d'une class , est ce possible ???

 

Sujets relatifs
Bonjour .. possible de créer une variable globale entre 2 scripts PHP?Faire un script qui ferme un pop-up automatiquement .... possible ?
Comment obtenir la liste des machines sur un LAN ?ou trouver des packages pour gere une liste
[PHP + MySQL] C'est possible de faire un site mirroir ?Est il possible d'acceder a des pages importantes
[C] enregistrement dans un repertoire non defini d'avance possible?[VBA] Possible de recuperer du telnet sous Excel en temps reel ?
Passage d'objets Java à une application C+++[JAVASCRIPT] envoyer un mail en javascript, c possible ???
Plus de sujets relatifs à : liste d'objets d'une class , est ce possible ???


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