int Func(function <int(int)> F,int x)

时间:2018-01-20 01:32:20

标签: c++

我有一个类的代码,我无法在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 ?

1 个答案:

答案 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;
}