// Uses pure virual functions to call appropriate method #include "Frogosaur.H" #include "Animal.H" #include "Dinosaur.H" const int N = 5; int main () { Animal* animalPtrs[N]; animalPtrs[0] = new Frog(); animalPtrs[1] = new Dinosaur(); animalPtrs[2] = new Frog(); animalPtrs[3] = new Dinosaur(); animalPtrs[4] = new Dinosaur(); for(int i = 0; i < N; i++ ) { cout << "animalPtrs[" << i << "]: "; animalPtrs[i] -> talk(); } return EXIT_SUCCESS; }