Запитання з тегом «virtual-inheritance»


5
Як віртуальне успадкування вирішує неоднозначність “діаманта” (багаторазового успадкування)?
class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } Я …

1
Чому конструктор за замовчуванням викликається у віртуальному успадкуванні?
Я не розумію, чому в наступному коді, коли я інстанцирую об'єкт типу daughter, grandmother()викликається конструктор за замовчуванням ? Я думав, що або grandmother(int)конструктор слід викликати (щоб дотримуватися специфікації конструктора мого motherкласу), або цей код взагалі не повинен компілювати через віртуального успадкування. Тут компілятор мовчки викликає grandmotherконструктор за замовчуванням в мою …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.