Почему в множественном наследовании виртуальной базы вызывается только конструктор по умолчанию для базового класса? [Дубликат]
На этот вопрос уже есть ответ здесь:
c ++ виртуальное наследование 3 ответаВ множественном наследовании у меня есть виртуальныйBase
класс, который наследуется классомA
и класс.B
A
а такжеB
базовые классыAB
, Пожалуйста, смотрите код ниже. В конструктореA
а также ,B
Base(string)
конструктор называется. Я ожидаю получить следующий вывод:
Base::Base(std::string)
A::A()
B::B()
Но я получаю следующий вывод:
Base::Base()
A::A()
B::B()
Почему конструктор по умолчаниюBase
называется?
#include
#include
using namespace std;
class Base{
public:
Base(){
cout