【发布时间】:2011-09-14 11:04:15
【问题描述】:
假设我有一个名为
的函数void funct2(int a) {
}
void funct(int a, (void)(*funct2)(int a)) {
;
}
调用这个函数的正确方法是什么?我需要进行什么设置才能使其正常工作?
【问题讨论】:
-
这个问题可能会有所帮助:stackoverflow.com/questions/9410/…
-
你有两个函数,你调用哪一个有问题?请注意,您通过具有相同名称的指向函数参数的指针将函数
funct2隐藏在funct中,因此您必须完全限定funct2才能直接从funct内部调用它。 -
正确,因为众所周知,C++ 是 C。欢迎来到 CloseOverflow。如果有人使用 C++11,这里有很好的阅读:stackoverflow.com/questions/16111285/…——避免使用指针传递函数可以提高可读性。
-
这与所引用的关于 C 的问题有何重复? C++ 有可能提供(或在某些时候提供)不同的方法。
-
@pooya13 这不是重复的。还有其他方法可以在 C++ 中将函数作为参数传递,而在 C 中是不可能的(例如,使用 functors)。
标签: c++