Bonjour,

Dans mon programme, j'utilise des std::vector de classes qui héritent toutes d'une même classe mère comme suit

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
class Symbol {...};
class Polygon : public Symbol {...};
class Line : public Symbol{...};
j'ai ailleurs dans le programme 2 vecteurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
std::vector<Line> _vectLine;
std::vector<Polygon> _vectPolygon;
je souhaite écrire une méthode qui s'appelle aussi-bien sur un vector<Line> que sur un vector<Polygon>, donc j'écris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
void doSomething(std::vector<Symbol> vect);
seulement voilà, lors de l'appel de ma méthode, il me dit qu'il ne peut pas convertir les vecteurs ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
std::vector<Line> _vect;
doSomething(_vect);
error C2440: 'cast de type'*: impossible de convertir de 'std::vector<_Ty>' en 'std::vector<_Ty>'
Je suis sûr que la chose doit être possible mais la syntaxe m'échappe.
J'ai pas envie de devoir déclarer tout mes vecteurs de classe fille comme des vecteurs de classe mère ...

d'avance je vous remercie de votre aide