Необходимо выполнить такой вот фокус.
Программа вызывает функцию и передаёт ей типизированный указатель. Функция принимает этот указатель как void *. Т.е. ничего не знает о типе объекта, на который указывает фактичекий параметр.
Задача функции заключается в определении типа объекта (имена классов и полей нас не интересуют, главное - структура объекта, т.е. состав и расположение полей), на который ссылается указатель.
Функции известно всё о классах, на объекты которых может ссылаться полученный указатель.
Использовать любые, даже самые извращенские способы: делать ассемблерные вставки, лезть в стек и кучу, использовать переменные окружения и т.п.