Merci pour vos réponse.
@poukil: voici ce que j'ai fait
Code:
1 2 3 4 5 6 7 8 9
|
B *b1=new B(v1);
B *b2=new B(v2); // v, valeur obenu par getV()
S *s=new S();
s->add(b1);
s->add(b2);
B *b=static_cast<B*>(s->get(0)); |
Je récupère bien un pointeur vers une classe B (et non vers une classe A). Par contre b->getV() me renvoi 0 (au lieu de v2) ... je pense que ceci est effectivement lié au fait que S et une table d'objet A et non pas une table de pointeurs vers les objets. Du coup, la valeur v2 est perdue en faisant s->add(b1) (puisqu'il créé un nouvel objet de type A).