Почему в множественном наследовании виртуальной базы вызывается только конструктор по умолчанию для базового класса? [Дубликат]

На этот вопрос уже есть ответ здесь:

c ++ виртуальное наследование 3 ответа

В множественном наследовании у меня есть виртуальныйBase класс, который наследуется классомA и класс.BA а такжеB базовые классыAB, Пожалуйста, смотрите код ниже. В конструктореA а также ,BBase(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

Ответы на вопрос(1)

Ваш ответ на вопрос