#include <iostream>
enum FooType : int
{
Crazy = 0,
Cool
};
enum BarType : int
{
Hello = Cool + 1,
World
};
class Foo
{
public:
Foo(void)
{
}
~Foo(void)
{
}
virtual int getType(void)
{
return Crazy;
}
};
class Bar : public Foo
{
public:
Bar(void)
{
}
~Bar(void)
{
}
virtual BarType getType(void)
{
return Hello;
}
};
int main(int argc, char* argv[])
{
Bar f = Bar();
std::cout << f.getType() << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKZW51bSBGb29UeXBlIDogaW50CnsKICAgIENyYXp5ID0gMCwKCUNvb2wKfTsKCmVudW0gQmFyVHlwZSA6IGludAp7CglIZWxsbyA9IENvb2wgKyAxLAoJV29ybGQKfTsKCmNsYXNzIEZvbwp7CnB1YmxpYzoKCUZvbyh2b2lkKQoJewoJfQoKCX5Gb28odm9pZCkKCXsKCX0KCgl2aXJ0dWFsIGludCBnZXRUeXBlKHZvaWQpIAoJewoJCQlyZXR1cm4gQ3Jhenk7Cgl9Cn07CgpjbGFzcyBCYXIgOiBwdWJsaWMgRm9vCnsKcHVibGljOgoJQmFyKHZvaWQpCgl7Cgl9CgoJfkJhcih2b2lkKQoJewoJfQoKCXZpcnR1YWwgQmFyVHlwZSBnZXRUeXBlKHZvaWQpCgl7CgkJcmV0dXJuIEhlbGxvOwoJfQp9OwoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewoJCglCYXIgZiA9IEJhcigpOwoJCglzdGQ6OmNvdXQgPDwgZi5nZXRUeXBlKCkgPDwgc3RkOjplbmRsOwoKCXJldHVybiAwOwp9