我有一个类的代码,我无法在Visual Studio 2015上工作,问题是什么,有人可以帮我理解这一行:int Func(function F,int x)?
int Func(function <int(int)> F, int x)
{
return F(x)*F(x) + 1;
}
int G(int x)
{
return x + 1;
}
int main(int argc, const char * argv[])
{
cout << "Func(G, 5) = " << Func(G, 5) << endl;
}`
why the code isn't running ?
答案 0 :(得分:2)
确保包含functional
标头并使用正确的命名空间。
https://en.wikipedia.org/wiki/Function_pointer#In_C++
#include <iostream>
#include <functional>
int Func(const std::function<int(int)> F, int x)
{
return F(x)*F(x) + 1;
}
int G(int x)
{
return x + 1;
}
int main(int argc, const char * argv[])
{
std::cout << "Func(G, 5) = " << Func(G, 5) << std::endl;
}