Различия между частным наследованием и составом - PullRequest
1 голос
/ 08 мая 2020

На другие вопросы уже даны ответы, что это такое и когда их использовать. Меня особенно интересует, как частное наследование и композиция отличаются на гораздо более глубоком техническом уровне. Таким образом, этот вопрос специально помечен как C ++, потому что детали низкого уровня зависят от языка.

Для меня я наследую не виртуально от одного базового класса. Сам базовый класс не наследуется от других классов. Предположим также, что базовый класс имеет хотя бы один член, поэтому нам не нужно беспокоиться об оптимизации пустой базы.

С точки зрения структуры памяти, порядка построения / уничтожения объекта, определенных операторов (присваивать, копировать, двигаться, ...) и другие критерии, о которых я не думал, есть ли различия между этими двумя подходами?

...