不确定标题是否表达正确,或者是否有更好的方式来表达,但我认为它还可以。
无论如何,目前我了解到以下内容:
a.b("a", "b", "c", foo);
当“foo”是在别处定义的一个不带参数的函数时,上述代码将简单地导致函数a.b()运行,并使用上述参数。然后可以在函数a.b()内部简单地调用参数“foo”作为“foo()”。换句话说,我理解上述调用是将函数指针作为参数在函数a.b中使用。
好的,现在这是我想做的事情...
我想能够做类似于上述的事情,但这次我希望将参数传递给foo:
a.b("a", "b", "c", foo("bar"));
现在的问题是,这将字面上导致使用参数"a","b","c"以及foo("bar")的结果。我不想要这样。我希望foo("bar")被字面传递,这样在函数a.b中就会像这样(作为头):
a.b(first, second, third, fourth);
可以将第四个参数作为参考并调用:
fourth();
即使"fourth"中有一个参数,我似乎也找不到解决这个问题的方法,有什么建议吗?谢谢!