Vector et classe abstraite

Signaler
Messages postés
16
Date d'inscription
dimanche 30 novembre 2003
Statut
Membre
Dernière intervention
28 juin 2004
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Bonjour,
dans le cadre d'un projet C++ pour mon ecole, je dois implémenter un vector contenant des objets "abstraits".
En fait, j'ai une classe Contrainte abstraite, avec une methode virtuelle pure (=0)
De cette classe, derivent plusieurs classes ContrainteTemps, ContrainteLongueur etc...
J'ai besoin de creer ce vector pour qu'ensuite je puisse y sotcker les différentes contraintes quelles soient de temps ou de longueur par exemple.
Hors à la compilation voila ce que j'obtiens :

48 c:\dev-c_~1\include\g__~1\stl_construct.h
cannot allocate an object of type `Contrainte'
48 c:\dev-c_~1\include\g__~1\stl_construct.h
since the following virtual functions are abstract:
28 Contrainte.h
void Contrainte::calculeSolution(ROSELecture *, Noeud *, Noeud *, Service *, int)

593 c:\dev-c_~1\include\g__~1\stl_vector.h
cannot declare variable `__x_copy' to be of type `Contrainte'
593 c:\dev-c_~1\include\g__~1\stl_vector.h
since type `Contrainte' has abstract virtual functions

est il possible de creer des vectors contenant des instances de classe virtuelle pure?
comment je peux faire pour contourner cette erreur, la resoudre?

Merci d'avance

Sophie

4 réponses

Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Il n'est pas possible d'instancier une class abstraite, il te faut obligatoirement une classe qui la spécialise. Voila, ++.
Bouba
Messages postés
16
Date d'inscription
dimanche 30 novembre 2003
Statut
Membre
Dernière intervention
28 juin 2004

Merci pour ta réponse Bouba
En fait, j'ai deja des classes qui spécialisant ma classe Contrainte, ceux sont les classes ContrainteTemps et ContrainteLongueur. C'est justement ces objets que je veux stocker dans mon vector.
Je veux avoir un vector qui puisse stocker indiffemment des objets ContraintesLongueur ou des objets ContrainteTemps...
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Ok, donne moi plutôt ton code source, t'as du faire une erreur.
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Pour stocker des objets dérivant de Contrainte => stocker des pointeurs sur Contrainte.