Когда именно указатель виртуальной таблицы (в C ++) устанавливается для объекта?

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

Мой вопрос в том, где именно в процессе создания экземпляра устанавливается этот vptr? Это присвоение vptr происходит внутри конструктора объекта до / после конструктора?

8
задан curiousguy 19 November 2019 в 17:39
поделиться