tengo una clase existido y función que se parece a esto:C++: ¿Puedo convertir un vector <derived_class> en un vector <base_class> durante una llamada a función?
Class base_class{
...
}
void Func(...,vector<base_class> &vec_b,...){
// inside the function, the vector vec_b is being re-organized and re-sized
}
y he definido una clase derivada que se parece a:
Class derived_class: public base_class{
...
}
Ahora, sin cambiar la función Func
, puedo pasar una vector<derived_class>
en Func
, ex:
void main(){
vector <derived_class> d;
Func(...,d,...);
}
tal que la clase derivada d
sufre la misma reorganización y cambio de tamaño? Sé que puedo convertir la clase derivada a clase base en una llamada a función sin problemas, pero una vez con un vector en juego, parece que hay dificultades? No puedo encontrar la respuesta en línea, por lo que cualquier sugerencia o ayuda es muy apreciada. Gracias.
Tus vectores están reteniendo objetos por valor, no por puntero, por lo que no puedes tener un comportamiento polimórfico de todos modos. Es decir, ¿cuál es el punto? – ildjarn
Relacionados con: http://stackoverflow.com/a/114883/8747. –
Algo relacionado: [http://www2.research.att.com/~bs/bs_faq2.html#conversion](http://www2.research.att.com/~bs/bs_faq2.html#conversion) –