C++ | Funciones virtuales | Pregunta 2

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

Deja una respuesta

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