C++ | Herencia | Pregunta 11

#include<iostream>
using namespace std;
  
class Base
{
public :
    int x, y;
public:
    Base(int i, int j){ x = i; y = j; }
};
  
class Derived : public Base
{
public:
    Derived(int i, int j):x(i), y(j) {}
    void print() {cout << x <<" "<< y; }
};
  
int main(void)
{
    Derived q(10, 10);
    q.print();
    return 0;
}

(A) 10 10
(B) Error del compilador
(C) 0 0

Respuesta: (B)
Explicación: los miembros de la clase base no se pueden asignar directamente mediante la lista de inicializadores . Deberíamos llamar al constructor de la clase base para inicializar los miembros de la clase base.

El siguiente es un programa libre de errores e imprime “10 10”

#include<iostream>
using namespace std;
  
class Base
{
public :
    int x, y;
public:
    Base(int i, int j){ x = i; y = j; }
};
  
class Derived : public Base
{
public:
    Derived(int i, int j): Base(i, j) {}
    void print() {cout << x <<" "<< y; }
};
  
int main(void)
{
    Derived q(10, 10);
    q.print();
    return 0;
}

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 *