#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.
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