Как создать указатель на функцию класса, которая знает только аргументы и тип возвращаемого значения? Как вызвать эту функцию позже?
Я читал о std :: function, однако я не представляю, как реализовать ее без использования указанного c имени класса, например "std::function<void(const ClassName&, int)> f_add_display = &ClassName::func;
"
Пример ниже НЕ для компиляции, он только для того, чтобы показать идею, которую я имею в виду:
class collection {
p* ...; //pointer to any(!) class function with known arguments and return type
} _collection;
class One {
public:
...
bool Foo_1(int, int) {};
void saveFuncAddr() {_collection.p = this::Foo_1};
};
class Two {
public:
bool Foo_2(int, int) {};
void saveFuncAddr() {_collection.p = this::Foo_2};
};
int main() {
one* = new One();
one->saveFuncAddr();
bool res1 = (*_collection.p)(1, 2);
two* = new Two();
two->saveFuncAddr();
bool res2 = (*_collection.p)(1, 2);
}