#include <iostream>
class A {
public:
A() {}
virtual ~A() {}
virtual void runFn() {GetPart(); }
private:
virtual void GetPart() = 0;
};
class B : public A {
public:
B() {}
virtual ~B() {}
private:
virtual void GetPart() override { std::cout << "GETPART RUN" << std::endl; }
};
int main()
{
B b;
b.runFn();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQSB7CnB1YmxpYzoKCUEoKSB7fQoJdmlydHVhbCB+QSgpIHt9CgoJdmlydHVhbCB2b2lkIHJ1bkZuKCkge0dldFBhcnQoKTsgfQoKcHJpdmF0ZToKCXZpcnR1YWwgdm9pZCBHZXRQYXJ0KCkgPSAwOwp9OwoKY2xhc3MgQiA6IHB1YmxpYyBBIHsKcHVibGljOgoJQigpIHt9Cgl2aXJ0dWFsIH5CKCkge30KCnByaXZhdGU6Cgl2aXJ0dWFsIHZvaWQgR2V0UGFydCgpIG92ZXJyaWRlIHsgc3RkOjpjb3V0IDw8ICJHRVRQQVJUIFJVTiIgPDwgc3RkOjplbmRsOyB9Cn07CgppbnQgbWFpbigpCnsKCUIgYjsKCWIucnVuRm4oKTsKCXJldHVybiAwOwp9