Да, я знаю * это указатель Я не об этом. В одной из моих программ у меня была установлена точка останова, и я заметил, что в autos была переменная __vfptr
со значением 0x000007feed210a00
,
Однако по типу, он просто сказал * и все. Все другие указатели в моей программе имели такие типы, как unsigned char*
или же some::namespace::Frame*
, или же int*
, Это имеет смысл, поскольку указатель напрямую связан с конкретным классом или типом данных. Но я понятия не имею, что * может быть, действительно ли существуют простые типы указателей?
РЕДАКТИРОВАТЬ : Я использую Visual Studio 2010
__vfptr
содержит Таблица виртуальных методов и он содержит информацию, которая позволяет динамическое связывание в наследованиях.
Информация в нем будет включать в себя такие вещи, как функциональные указатели Разрешить virtual functions
и информация о классе и его родителях.
Ответ, очевидно, зависит от реализации и формально касается вашего отладчика, а не C ++. На практике, однако, некоторые варианты _vptr
является более или менее стандартным (в обычном смысле, а не в смысле определения формальным стандартом) именем указателя на _vtable
, который в свою очередь содержит все виды информации, необходимой для разрешения виртуальных функций и RTTI. Итак _vptr
это указатель на таблицу указателей, смещений и многих других вещей. Отладчик, вероятно, просто избегает необходимости давать этой цели имя или описывать ее структуру.