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