Информация об изменениях

Сообщение Re[5]: Виртуальное наследование и возврат объекта от 11.11.2019 22:53

Изменено 11.11.2019 23:07 rg45

Re[5]: Виртуальное наследование и возврат объекта
Здравствуйте, _NN_, Вы писали:

_NN>Разве компилятор не должен брать конструкторы из класса FinalClass ?


Должен. Но фишка в том, что подобъект виртуального базового класса инициализируется только в most derived классе. Он не может быть проинициализирован в не most derived классе. Поэтому конструктор перемещения, объявленный в FinalClass не оказывает никакого влияния на удаленный конструктор перемещения класса Base. И тот отстается быть удаленным аж до самого FinalClassEx.
Re[5]: Виртуальное наследование и возврат объекта
Здравствуйте, _NN_, Вы писали:

_NN>Разве компилятор не должен брать конструкторы из класса FinalClass ?


Должен. Но фишка в том, что подобъект виртуального базового класса инициализируется только в most derived классе. Он не может быть проинициализирован в не most derived классе. Поэтому конструктор перемещения, объявленный в FinalClass не оказывает никакого влияния на удаленный конструктор перемещения класса Base. И тот отстается быть удаленным аж до самого FinalClassEx. А вместе с ним оказывается удаленным и конструктор перемещения класса FinalClassEx, если его не определить.