Vector et classe abstraite

titpeste Messages postés 16 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 28 juin 2004 - 30 nov. 2003 à 19:48
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 1 déc. 2003 à 13:35
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

cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
30 nov. 2003 à 20:55
Il n'est pas possible d'instancier une class abstraite, il te faut obligatoirement une classe qui la spécialise. Voila, ++.
Bouba
0
titpeste Messages postés 16 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 28 juin 2004
30 nov. 2003 à 21:03
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...
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
30 nov. 2003 à 21:08
Ok, donne moi plutôt ton code source, t'as du faire une erreur.
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
1 déc. 2003 à 13:35
Pour stocker des objets dérivant de Contrainte => stocker des pointeurs sur Contrainte.
0
Rejoignez-nous