C++ | Herencia | Pregunta 8

#include<iostream>
using namespace std;
  
class Base
{
public:
    int fun()  { cout << "Base::fun() called"; }
    int fun(int i)  { cout << "Base::fun(int i) called"; }
};
  
class Derived: public Base
{
public:
    int fun() {  cout << "Derived::fun() called"; }
};
  
int main()
{
    Derived d;
    d.fun(5);
    return 0;
}

(A) Llamada a Base::fun(int i)
(B) Llamada a Derived::fun()
(C) Llamada a Base::fun()
(D)

Respuesta de error del compilador : (D)
Explicación: Si una clase derivada escribe su propio método, entonces todas las funciones de la clase base con el mismo nombre se ocultan, incluso si las firmas de las funciones de la clase base son diferentes.

En la pregunta anterior, cuando fun() se reescribe en Derivado, oculta tanto fun() como fun(int) de la clase base.
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 *