#include<iostream> using namespace std; class P { public: void print() { cout <<" Inside P"; } }; class Q : public P { public: void print() { cout <<" Inside Q"; } }; class R: public Q { }; int main(void) { R r; r.print(); return 0; }
(A) Dentro de P
(B) Dentro de Q
(C) Error del compilador: Llamada ambigua a print()
Respuesta: (B)
Explicación: La función de impresión no está presente en la clase R. Por lo tanto, se busca en la jerarquía de herencia. print() está presente en ambas clases P y Q, ¿cuál de ellas debería llamarse? La idea es que, si hay herencia multinivel, la función se busca linealmente en la jerarquía de herencia hasta que se encuentra una función coincidente.
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