// console3.cpp : Defines the entry point for the console application. // #include #include #include class A { public: virtual run() { printf("A::run()\n"); } }; class B : public A { public: virtual run() { printf("B::run()\n"); } }; class C : public A { public: virtual run() { printf("C::run()\n"); } }; class D : public A { public: virtual run() { printf("D::run()\n"); } }; struct E : public D { virtual run() { printf("E::run()\n"); } }; int main(int argc, char* argv[]) { printf("Polymorphism\n"); A *pA[10]; srand( time(NULL) ); for( int j=0; j<10; j++) { int k = rand()%5; switch (k) { case 0: pA[j] = new A(); break; case 1: pA[j] = new B(); break; case 2: pA[j] = new C(); break; case 3: pA[j] = new D(); break; case 4: pA[j] = new E(); break; } } for( int i=0; i<10; i++) pA[i]->run(); // For FUN try: (*(pA+i))->run() OR i[pA]->run(); for( i=0; i<5; i++) delete pA[i]; return 0; }