#include <iostream>
#include <typeinfo>
using namespace std;
class vvoid {
virtual void mv() {};
};
class Name
{
virtual void mv() {};
int a;
int b;
};
class Name1
{
virtual void mv() {};
int a;
int b;
};
void f(vvoid *p){
cout<<"f("<<p<<"):"<<typeid(*p).name()<< endl;
}
int main() {
Name *n=new Name;;
Name1 *n1=new Name1;
f(reinterpret_cast<vvoid*>(n));
f(reinterpret_cast<vvoid*>(n1));
// your code goes here
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDx0eXBlaW5mbz4KICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAKICAgIGNsYXNzIHZ2b2lkIHsKICAgIAl2aXJ0dWFsIHZvaWQgbXYoKSB7fTsKICAgIH07CiAgICBjbGFzcyBOYW1lCiAgICB7CiAgICAJdmlydHVhbCB2b2lkIG12KCkge307CiAgICBpbnQgYTsKICAgIGludCBiOwogICAgfTsKICAgICAKICAgIGNsYXNzIE5hbWUxCiAgICB7CiAgICAJdmlydHVhbCB2b2lkIG12KCkge307CiAgICBpbnQgYTsKICAgIGludCBiOwogICAgfTsKICAgIAogICAgdm9pZCBmKHZ2b2lkICpwKXsKICAgICAgICBjb3V0PDwiZigiPDxwPDwiKToiPDx0eXBlaWQoKnApLm5hbWUoKTw8IGVuZGw7CiAgICB9CiAgICAgCiAgICBpbnQgbWFpbigpIHsKICAgICAgICBOYW1lICpuPW5ldyBOYW1lOzsKICAgICAgICBOYW1lMSAqbjE9bmV3IE5hbWUxOwogICAgICAgIGYocmVpbnRlcnByZXRfY2FzdDx2dm9pZCo+KG4pKTsgCiAgICAgICAgZihyZWludGVycHJldF9jYXN0PHZ2b2lkKj4objEpKTsKICAgICAKICAgIC8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICAgIHJldHVybiAwOwogICAgfQ==