|
Herencia y polimorfismo dentro de un vector
Hola, estoy con c++ builder intentando hacer un vector de la librería STL que contenga objetos de la classe TSimbolo (una clase mía). Esta clase es padre de otras que heredan de ella. En realidad el vector será de las subclases, aunque lógicamente lo tengo que inicializar como TSimbolo para que pueda contenerlas a todas.
Una de esas clases es TNota, que redefine un método virtual de TSimbolo llamado lista(). Este código funciona:
TNota * aux = new TNota();
TSimbolo * s = aux;
s->lista();
En este caso la función que se ejecuta es la de la clase TNota.
Sin embargo Este código:
(en .h): std::vector <TSimbolo> P;
TNota * aux = new TNota();
P.push_back(*aux);
P[0].lista();
En este caso ejecuta la función de TSimbolo, no la de TNota que es lo que quiero.
¿Alguna idea?
|