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

  FORUM HardWare.fr
  Programmation
  C++

  Problème de pointeur objet mère qui pointe sur objet fille

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de pointeur objet mère qui pointe sur objet fille

n°1706638
benito5965​0
Posté le 22-03-2008 à 20:57:40  profilanswer
 

Bonsoir à tous
 
J'ai une classe mère : SecteurDActivite, et 5 classes filles (Agroalimentaire, Energie, Industrie, Tourisme, Transport). J'ai crée un pointeur S de SecteurDActivite de taille 5 que j'ai initialisé comme suit:

Code :
  1. // Création des secteurs dactivités:
  2. Agroalimentaire agroalimentaire(nombreDePeriode);
  3. Energie energie(nombreDePeriode);
  4. Industrie industrie(nombreDePeriode);
  5. Tourisme tourisme(nombreDePeriode);
  6. Transport transport(nombreDePeriode);
  7. // Création du pointeur de secteur d'activités:
  8. SecteurDActivite* S=new SecteurDActivite[nombreDeSecteurDActivite];
  9. S[0]=agroalimentaire;
  10. S[1]=energie;
  11. S[2]=industrie;
  12. S[3]=tourisme;
  13. S[4]=transport;


 
J'ai une méthode que je dois utiliser pour chaque secteur d'activité, mais qui est différente pour chaque secteur.
Dans la classe SecteurDActivite je l'ai donc créé en virtual et je n'ai rien mis dedans :

Code :
  1. class SecteurDActivite :
  2. {
  3.      virtual void calculImpactAleas(int periode, Aleas A, Entreprise* E, Marche* M){};
  4. };


 
et je l'ai ensuite mise dans chacune des classes filles avec une implémentation différente.
 
Cependant lorsque j'execute mon programme principale dont la partie du code intéressante est la suivante :  
 

Code :
  1. for (int s=0; s<nombreDeSecteurDActivite; s++) S[s].calculImpactAleas(i, alea, E, M);


 
le programme utilise la méthode de la classe SecteurDActivite, et non celles des classes filles, comme le montre l'execution du programme ( j'ai mis des cout<<endl<<__PRETTY_FUNCTION__<<"adr objet : "<<this;  dans l'implémentation des méthodes)
 
virtual void SecteurDActivite::calculImpactAleas(int, Aleas, Entreprise*, Marche*)adr objet : 0x83502b4
virtual void SecteurDActivite::calculImpactAleas(int, Aleas, Entreprise*, Marche*)adr objet : 0x835030c
virtual void SecteurDActivite::calculImpactAleas(int, Aleas, Entreprise*, Marche*)adr objet : 0x8350364
virtual void SecteurDActivite::calculImpactAleas(int, Aleas, Entreprise*, Marche*)adr objet : 0x83503bc
virtual void SecteurDActivite::calculImpactAleas(int, Aleas, Entreprise*, Marche*)adr objet : 0x8350414
 
 
Pouvez-vous m'aider s'il vous plait?
 
Je vous remercie d'avance

mood
Publicité
Posté le 22-03-2008 à 20:57:40  profilanswer
 

n°1706639
Joel F
Real men use unique_ptr
Posté le 22-03-2008 à 21:12:37  profilanswer
 

Le polymorphisme n'opére que sur poineurs et références.
 

Code :
  1. std::vector<SecteurDActivite*> secteurs(5);
  2. secteurs[0] = new Agroalimentaire(nombreDePeriode);
  3. secteurs[1] = new Energie(nombreDePeriode);
  4. secteurs[2] = new Industrie(nombreDePeriode);
  5. secteurs[3] = new Tourisme(nombreDePeriode);
  6. secteurs[4] = new Transport(nombreDePeriode);
  7. for (int s=0; s<secteurs.size(); ++s) secteurs[s]->calculImpactAleas(i, alea, E, M);

n°1706641
benito5965​0
Posté le 22-03-2008 à 21:27:59  profilanswer
 

Merci beaucoup, je viens de modifier et ça marche.
Par contre j'ai du modifier ta synthaxe car j'avais un message d'erreur qui ne reconnaissait pas vector, et l'écriture qui suit. J'ai donc créé un pointeur de pointeur à la place (ce qui revient au même).

n°1706658
Joel F
Real men use unique_ptr
Posté le 22-03-2008 à 23:05:19  profilanswer
 

... ouasi enfin
 
#include <vector>  
 
quoi :[ la STL c'ets la base :o
Les gens qui font des tableaux avec pointeurs en C++ méritent le pal et le retrait de la CAF.


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

  Problème de pointeur objet mère qui pointe sur objet fille

 

Sujets relatifs
problème de classes qui s'incluent entre ellesProblème bizarre
[URGENT] Probleme de dump mysqlProbleme de connection a une base local via Application
Problème de compatibilité IE et FF ...[C++]Problème dans mon programme
[resolu(erreur de noob)]Probleme "segment fault"probleme avec php web gallery
Probleme de script? 
Plus de sujets relatifs à : Problème de pointeur objet mère qui pointe sur objet fille


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