#include <iostream>

class A {
public:
	A() {}
	virtual ~A() {}

	virtual void runFn() {GetPart(); }

protected:
	virtual void GetPart() {
	    std::cout << "A::GetPart" << std::endl;
	}
};

class B : public A {
public:
	B() {}
	virtual ~B() {}
protected:
	virtual void GetPart() override {
	    A::GetPart();
	    std::cout << "GETPART RUN" << std::endl;
	}
};

int main()
{
	B b;
	b.runFn();
	return 0;
}