У меня есть базовый класс и несколько производных. Я должен «зарегистрировать» некоторую статическую функцию от каждого из них. Вот пример:
class Base
{
// Some interface...
};
class Der1 : Base
{
static void Do();
};
class Der2 : Base
{
static void Do();
};
void processStatic()
{
SomeFunc(Der1::Do);
SomeFunc(Der2::Do);
}
Как видите, SomeFunc
получает указатель на функцию. Я хочу сделать это автоматически с каждым новым производным классом, возможно ли это? Возможно, предопределите статическую функцию в классе Base
и зарегистрируйте ее там. Но я думаю, что это невозможно, да?
Может быть, это будет легче понять, что я хочу:
class Der1 : Base
{
Der1() { SomeFunc(Der1::Do); }
static void Do();
};
class Der2 : Base
{
Der2() { SomeFunc(Der2::Do); }
static void Do();
};