// Listing 14.2 Using dynamic_cast.
// Using rtti
you can ignore this post, please read the next one, where I made the question more understadable
Code:#include <iostream> using namespace std; enum TYPE { HORSE, PEGASUS }; class Horse { public: virtual void Gallop(){ cout << "Galloping...\n"; } //why make this one private: int itsAge; }; class Pegasus : public Horse { public: virtual void Fly() {cout<<"I can fly! I can fly! I can fly!\n";//and //this here virtual methods? }; const int NumberHorses = 5; int main() { Horse* Ranch[NumberHorses]; Horse* pHorse; int choice,i; for (i=0; i<NumberHorses; i++) { cout << "(1)Horse (2)Pegasus: "; cin >> choice; if (choice == 2) pHorse = new Pegasus; else pHorse = new Horse; Ranch[i] = pHorse; } cout << "\n"; for (i=0; i<NumberHorses; i++) { Pegasus *pPeg = dynamic_cast< Pegasus *> (Ranch[i]); if (pPeg) pPeg->Fly(); else cout << "Just a horse\n"; delete Ranch[i]; } int x; cin>>x; return 0; }



LinkBack URL
About LinkBacks


