Что строится первым? - PullRequest
0 голосов
/ 19 мая 2019

Меня просто интересует порядок конструкций здесь.Что будет построено здесь в первую очередь, это InstanceOfA или конструктор B, который уже будет вызывать A?

class A {
    public:
    A() { cout << "A ctor" << endl; }
    A(const A& a) { cout << "A copy ctor" << endl; }
    virtual ~A() { cout << "A dtor" << endl; }
    virtual void foo() { cout << "A foo()" << endl; }
    virtual A& operator=(const A& rhs) { cout << "A op=" << endl; }
};

class B : public A {
    public:
    B() { cout << "B ctor" << endl; }
    virtual ~B() { cout << "B dtor" << endl; }
    virtual void foo() { cout << "B foo()" << endl; }
    protected:
    A mInstanceOfA; // don't forget about me!
    };

int main() {
    B X;
}

1 Ответ

1 голос
/ 19 мая 2019

Порядок конструкторов:

База - Члены - Производные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...