0

有没有办法使用没有指针的方法来设置方法?

void (*_method)();

void setMethod(void (*method)()) {
    _method = method;
}

void getMethod() {
    _method()
}

void aMethod() {

}

main() {
    setMethod(aMethod);
    getMethod();
}

有没有办法在没有指针的情况下做到这一点?只是直接变量?我知道我可以在没有指针的情况下做这样的事情:

void callSomeMethod(void (method)()) {
    method();
}

但是没有它们,上面的整个事情都可以完成吗?

4

2 回答 2

3

如果你想避免使用指针,你总是可以使用引用。

void callSomeMethod(void (&method)())
{
    method();
}

这样做的好处是可以防止将空指针传递给callSomeMethod().

于 2013-05-25T05:06:13.490 回答
2

是的。您可以使用std::functionandstd::bind来执行此操作。 http://en.cppreference.com/w/cpp/utility/functional/function

于 2013-05-25T04:56:28.970 回答