Predecir la salida del siguiente programa
#include<iostream> using namespace std; class Base { public: virtual void show() { cout<<" In Base \n"; } }; class Derived: public Base { public: void show() { cout<<"In Derived \n"; } }; int main(void) { Base *bp = new Derived; bp->show(); Base &br = *bp; br.show(); return 0; }
(A)
In Base In Base
(B)
In Base In Derived
(C)
In Derived In Derived
(D)
In Derived In Base
Respuesta: (C)
Explicación: dado que show() es virtual en la clase base, se llama de acuerdo con el tipo de objeto al que se refiere o apunta, en lugar del tipo de puntero o referencia.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA