Чтобы завершить учебный процесс и развить более глубокое понимание, вы можете начать слегка изменять вещи.Например, что происходит, когда B
не имеет конструктора по умолчанию?Это даже компилируется?Другие небольшие модификации, такие как эта, обеспечат большой опыт обучения.
Тем не менее, по моему опыту, лучше сделать это
A::A() : B() { ... }
, чем
A::A() { ... }
, потому чтопервый более явный, и он заставит вас задуматься о том, что на самом деле происходит с инициализацией базового класса.Вы, вероятно, избежите скрытого поведения, объясняя вещи явно.