Я знаю, что для любого класса, у которого есть виртуальная функция, или класса, производного от класса, у которого есть виртуальная функция, компилятор делает две вещи. Во-первых, он создает виртуальную таблицу для этого класса, а во-вторых, помещает виртуальный указатель (vptr) в базовую часть объекта. Во время выполнения этот vptr назначается и начинает указывать на правильную vtable при создании экземпляра объекта.
Мой вопрос в том, где именно в процессе создания экземпляра устанавливается этот vptr? Это присвоение vptr происходит внутри конструктора объекта до / после конструктора?