Buongiorno

Ho un vector:
codice:
extern std::vector<Poligono> poligoni;
Tre classi figlie di Poligono che contengono la funzione calcolaArea();
In poligono.h quindi:
codice:
virtual double calcolaArea(){return 0.0;}
Inoltre ho un'altra funzione in cui vorrei riempirmi un array chiamato aree con tutte le aree dei miei poligoni quindi:
codice:
for(int i=0; i<poligoni.size();i++)
{
double a=poligoni[i].calcolaArea();
aree[i]=a;
}
Compila ma le aree dei miei poligoni risultano tutte 0. In fase di debug noto che non entra per niente nella funzione calcolaArea() (mettendo un breakpoint le linee in questione sono verdi)