// Programa clas30.cpp de exemplo para ilustrar conceitos // de funcoes virtuais // Original do livro TURBO C++ SCHILDT pg 438 #include #include class base { public: virtual void quem() { // especifica funcao virtual cout << "base \n"; } }; class primeira_d:public base { public: void quem() { // define quem() relativa a primeira_d cout << "Primeira derivacao\n"; } }; class segunda_d:public base { public: void quem() { // define quem() relativa a segunda_d cout << "Segunda derivacao\n"; } }; main (void) { base base_obj; base *p; primeira_d primeira_obj; segunda_d segunda_obj; p=&base_obj; p->quem(); //acessa funcao quem da base p=&primeira_obj; p->quem(); //acessa a funcao quem da primeira_d p=&segunda_obj; p->quem(); //acessa a funcao quem da segunda_d return 0; } /* resultado base Primeira derivacao Segunda derivacao */