#include <iostream>
#include <functional>
class Foo {
private:
std::function<?> func;
public:
void call_func (?) {
this->func(?);
}
void set_func (std::function<?> func) {
this->func = func;
}
};
class Bar {
public:
Bar () {
Foo foo;
foo.set_func(std::bind(&Bar::func, this, std::placeholders::_1));
foo.call_func(1);
foo.set_func(std::bind(&Bar::func2, this, std::placeholders::_1, std::placeholders::_2));
foo.call_func(1, 2);
}
void func (int number) {
std::cout << number;
}
void func2 (int number, int number2) {
std::cout << number << '\n';
std::cout << number2;
}
};
int main () {
Bar bar;
return 0;
}
我希望std :: function的一个实例包含多个具有不同参数类型的方法。
但是我不知道是否可行以及如何调用该函数。
您对这个问题有什么看法?感谢您的阅读。
通常,我使用以下方法。是的,本质上是完全不同的。我只想知道是否还有另一种方法。
foo.set_func([this]() {
this->func(1);
});
foo.call_func();
foo.set_func([this]() {
this->func2(1, 2);
});
foo.call_func();