«Объект - это интерфейс» не имеет смысла. Похоже, вы хотите убедиться, что указатель, переданный в функцию, был объявлен с типом интерфейса, подобным
Interface_t x = new Class_which_implements_interface_t();
в отличие от
Class_which_implements_interface_t y = new Class_which_imlements_interface_t();
Единственная проблема в том, что если вы сделаете такую функцию:
void some_func(Interface_t z) {...}
И вы вызываете его с помощью some_func(x);
или some_func(y);
, функция передает ссылку по значению, что означает, что внутри some_func
, z является копией x или y, которая была приведена к Interface_t
указатель. Нет способа получить информацию о том, какого типа был оригинальный указатель. Пока он может быть преобразован в Interface_t
, он будет компилироваться и запускаться.