C++ | Funciones virtuales | Pregunta 10

#include<iostream>
using namespace std;
class Base  {
public:
    Base()    { cout<<"Constructor: Base"<<endl; }
    virtual ~Base()   { cout<<"Destructor : Base"<<endl; }
};
class Derived: public Base {
public:
    Derived()   { cout<<"Constructor: Derived"<<endl; }
    ~Derived()  { cout<<"Destructor : Derived"<<endl; }
};
int main()  {
    Base *Var = new Derived();
    delete Var;
    return 0;
}

(A)

Constructor: Base
Constructor: Derived
Destructor : Derived
Destructor : Base

(B)

Constructor: Base
Constructor: Derived
Destructor : Base

(C)

Constructor: Base
Constructor: Derived
Destructor : Derived

(D)

Constructor: Derived
Destructor : Derived

Respuesta: (A)
Explicación: dado que el destructor es virtual, se llama al destructor de clase derivada, que a su vez llama al destructor 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 *