C++ | Herencia | Pregunta 4

#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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *