Код, который вы опубликовали, напоминает мне так называемый шаблонный метод.Теоретически этот шаблон выглядит следующим образом:
class Base
{
public:
void execute()
{
function1();
function2();
}
private:
virtual void function1();
virtual void function2();
};
, а затем в каком-то классе:
class Derived1 : public Base
{
void function1()
{
//implementation here...
}
};
, а затем вы звоните
b->execute(); //b is of type Base* and points to an object of type Derived1
ивсе сделано.
Не уверен, как это будет работать в вашем случае, возможно, не совсем, но по крайней мере это пример шаблона, очень похожего на то, что вы описываете.