Дан текст программы
#include
using namespace std;
class Object
{
public:
Object() { cout << "Object::ctor()" << endl; }
~Object() { cout << "Object::dtor()" << endl; }
};
class Base
{
public:
Base() { cout << "Base::ctor()" << endl; }
virtual ~Base() { cout << "Base::dtor()" << endl; }
virtual void print() = 0;
};
class Derived: public Base
{
public:
Derived() { cout << "Derived::ctor()" << endl; }
~Derived() { cout << "Derived::dtor()" << endl; }
void print() {}
Object obj;
};
int main ()
{
Base * p = new Derived;
delete p;
return 0;
}
В каком порядке будут вызываться конструкторы?

  • Сначала конструктор класса Base, затем конструктор класса Derived, последним конструктор класса Object
  • Сначала конструктор класса Base, затем конструктор класса Object, последним конструктор класса Derived
  • Сначала конструктор класса Derived, затем конструктор класса Base, последним конструктор класса Object
  • Сначала конструктор класса Object, затем конструктор класса Base, последним конструктор класса Derived
Для просмотра статистики ответов нужно залогиниться.