Компилятор вставляет код в начало конструктора, который инициализирует VPTR. Влияет ли на эту операцию конструктор по умолчанию или он объявлен явно? Есть ли разница между этими двумя?
Он всегда будет вставлен, он должен работать так, чтобы полиморфизм работал, по крайней мере так, как это обычно делают компиляторы. Он будет инициализирован всегда, конструкторы, которые вы объявляете (или не объявляете), не имеют значения.
Или, эй, может быть, не будет (хотя я не знаю никаких компиляторов, которые ведут себя так), все вы нужно заботиться о том, чтобы полиморфизм работал, и всегда работал независимо от того, какие конструкторы вы объявили.