Devi usare il dynamic_cast<>
codice:Persona* p; Persona vettP[100]; p = new Occupato; vettP[0] = p; p = new Disoccupato; vettP[1] = p; ... Occupato* occ = dynamic_cast<Occupato*>(vettP[0]); if (occ != 0) { cout << " occupato " << endl; } else { cout << " non occupato " << endl; } Disoccupato* disocc = dynamic_cast<Disoccupato*>(vettP[1]); if (disocc != 0) { cout << " disoccupato " << endl; } else { cout << " non disoccupato " << endl; }