Нужно объяснение в вызове конструктора, в унаследованных классах?
#include<iostream> using namespace std; class A { public: A() { cout << "A's constructor called" << endl; } }; class B { public: B() { cout << "B's constructor called" << endl; } }; class C: public B, public A // Note the order { public: C() { cout << "C's constructor called" << endl; } }; int main() { C c; return 0; }
Мой вопрос заключается в том, почему конструктор класса B/A вызывается автоматически, когда я создаю объект класса c
выход есть
B's constructor called A's constructor called C's constructor called
Что я уже пробовал:
google.com и еще stackoverflow.com
KarstenK
Избегайте такого наследия, потому что оно определено в C++, в каком порядке вызываются конструкторы. Таким образом, решение 1 является правильным для некоторого странного поведения.