Ciao a tutti. Mi si è presentato un problema con l'ededitarietà in C++
Ho 2 classi:
class Father
{
std::string nome;
public:
...
virtual void Print();
};
class Son : public Father
{
int num;
public:
...
virtual void Print();
};
La versione di Print utilizzata da Son richiama quella di Father (che stampa il nome) e successivamente stampa il numero.
vector<Father *> v;
v.push_back(new Son("ciao",2));
v[0].Print();
In questo caso mi viene chiamata la versione di Print di Father mentre essendo i metodi virtual dovrebbe essere chiamata quella del tipo effettivo dell'oggetto a run-time (ossia Son)... Non mi capacito di questa cosa... Qualche anima pia può illuminarmi?
Un saluto,
Zeruel