Рубрики

C ++ | Виртуальные функции | Вопрос 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;

}

(А)

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

(В)

Constructor: Base
Constructor: Derived
Destructor : Base

(С)

Constructor: Base
Constructor: Derived
Destructor : Derived

(D)

Constructor: Derived
Destructor : Derived

Ответ: (А)
Объяснение: Поскольку деструктор является vitrual, вызывается деструктор производного класса, который в свою очередь вызывает деструктор базового класса.
Тест на этот вопрос

Рекомендуемые посты:

C ++ | Виртуальные функции | Вопрос 10

0.00 (0%) 0 votes