class Abstract {
public:
virtual void somemethod() = 0;
};
class ConcreteChild : public Abstract {
public:
void somemethod() { };
};
class ConcreteGrandsone : ConcreteChild {
public:
void somemethode2() {};
};
int main(int argc, char * argv[])
{
ConcreteGrandsone s;
}
Y2xhc3MgQWJzdHJhY3QgewogcHVibGljOgogIHZpcnR1YWwgdm9pZCBzb21lbWV0aG9kKCkgPSAwOwp9OwpjbGFzcyBDb25jcmV0ZUNoaWxkIDogcHVibGljIEFic3RyYWN0IHsKIHB1YmxpYzoKIHZvaWQgc29tZW1ldGhvZCgpIHsgfTsKfTsKY2xhc3MgQ29uY3JldGVHcmFuZHNvbmUgOiBDb25jcmV0ZUNoaWxkIHsKIHB1YmxpYzoKICAgICB2b2lkIHNvbWVtZXRob2RlMigpIHt9Owp9OwoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10pCnsKICAgIENvbmNyZXRlR3JhbmRzb25lIHM7Cn0K