Я верю, повторно интегрируют, на самом деле не делает этих двух операций, но вместо этого используется для слияния назад в соединительную линию от обновленного ответвления. Необходимо будет все еще сделать первый набор операций слияния/фиксации для обновления ответвления сначала.
Вот ссылка на Книга Подрывной деятельности. Возможно получить эту книгу в мертвом древовидном формате.
Из ссылки, это кажется, что использование - повторно интегрирует, обрабатывает некоторые странные случаи, вероятно, как слияние обычно делает по сравнению только с использованием прямых патчей (считайте раздел "Why Not Use Patches Instead?").
Я думаю, что за виртуальное наследование не взимается штраф за время выполнения. Не путайте виртуальное наследование с виртуальными функциями. Обе это разные вещи.
виртуальное наследование гарантирует, что у вас есть только один подобъект A
в случаях D
. Так что я не думаю, что за это может быть наложен штраф .
Однако могут возникнуть случаи, когда этот подобъект не может быть известен во время компиляции, поэтому в таких случаях за виртуальное наследование может быть наложен штраф во время выполнения. Один такой случай описан Джеймсом в его ответе.