C++ | Herencia | Pregunta 7

#include<iostream>
using namespace std;
  
class Base
{
public:
    void show()
    {
        cout<<" In Base ";
    }
};
  
class Derived: public Base
{
public:
    int x;
    void show()
    {
        cout<<"In Derived ";
    }
    Derived()
    {
        x = 10;
    }
};
  
int main(void)
{
    Base *bp, b;
    Derived d;
    bp = &d;
    bp->show();
    cout << bp->x;    
    return 0;
}

(A) Error del compilador en la línea «bp->show()»
(B) Error del compilador en la línea «cout <x»
(C) En base 10
(D) En 10 derivado

Respuesta: (B)
Explicación: Un puntero de clase base puede apuntar a un objeto de clase derivada, pero solo podemos acceder a miembros de la clase base o funciones virtuales usando el puntero de la clase base porque la división de objetos ocurre cuando un objeto de clase derivada se asigna a un objeto de clase base. Los atributos adicionales de un objeto de clase derivado se cortan para formar el objeto de 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 *