Если вы хотите принять указатель на произвольный объект, то вы бы хотели, чтобы тип был void *
. Однако это будет конец функции, вы ничего не можете сделать с void *
, кроме как сохранить его значение или привести его к указателю на некоторый известный объект. Если вы все равно собираетесь его разыграть, то, вероятно, знаете, что это за объект, поэтому вам не нужен void *
.
C ++ просто не обладает теми же возможностями интроспекции, что и Java. Другими словами, нет удобного способа сказать что-то вроде myObject.getClass().getName()
. Самая близкая вещь, о которой я знаю, это информация о типе времени выполнения (RTTI), которую вы можете увидеть в действии здесь .
Другая альтернатива - создать собственный корневой класс и написать свои собственные методы самоанализа (многие платформы C ++ делают это).