Problème de pointeur objet mère qui pointe sur objet fille - C++ - Programmation
Marsh Posté le 22-03-2008 à 21:12:37
Le polymorphisme n'opére que sur poineurs et références.
Code :
|
Marsh Posté le 22-03-2008 à 21:27:59
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).
Marsh Posté le 22-03-2008 à 23:05:19
... ouasi enfin
#include <vector>
quoi :[ la STL c'ets la base
Les gens qui font des tableaux avec pointeurs en C++ méritent le pal et le retrait de la CAF.
Marsh Posté le 22-03-2008 à 20:57:40
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:
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 :
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 :
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