#include <iostream>
using namespace std;
class figure
{
public:
virtual ~figure(){}
};
class Pawn : public figure
{
public:
virtual ~Pawn(){}
};
void value(figure fi)
{
cout << "val typeid check: " << (typeid(fi) == typeid(Pawn)) << endl;
}
void refer(figure& fi)
{
cout << "ref typeid check: " << (typeid(fi) == typeid(Pawn)) << endl;
}
int main()
{
Pawn p;
value(p);
refer(p);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIGZpZ3VyZQp7CnB1YmxpYzoKICAgIHZpcnR1YWwgfmZpZ3VyZSgpe30KfTsKCmNsYXNzIFBhd24gOiBwdWJsaWMgZmlndXJlCnsKcHVibGljOgogICAgdmlydHVhbCB+UGF3bigpe30KfTsKCnZvaWQgdmFsdWUoZmlndXJlIGZpKQp7CiAgICBjb3V0IDw8ICJ2YWwgdHlwZWlkIGNoZWNrOiAiIDw8ICh0eXBlaWQoZmkpID09IHR5cGVpZChQYXduKSkgPDwgZW5kbDsKfQoKdm9pZCByZWZlcihmaWd1cmUmIGZpKQp7CiAgICBjb3V0IDw8ICJyZWYgdHlwZWlkIGNoZWNrOiAiIDw8ICh0eXBlaWQoZmkpID09IHR5cGVpZChQYXduKSkgPDwgZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBQYXduIHA7CiAgICB2YWx1ZShwKTsKICAgIHJlZmVyKHApOwp9Cg==