在下面的 C++ 代码中,double (*) double
是什么意思?
它是什么样的返回类型?
auto get_fun(int arg) -> double (*)(double) // same as: double (*get_fun(int))(double)
{
switch (arg)
{
case 1: return std::fabs;
case 2: return std::sin;
default: return std::cos;
}
}
最佳答案
double (*)(double)
它是一个函数指针签名,用于接受一个 double
参数并返回 double
的函数。一般
X (*)(A, B, C) // any number of args
是一个指向函数的指针,该函数接受类型为 (A, B, C)
的参数并返回类型为 X
的值,例如
X my_func(A, B, C) {
return X(); // assuming this makes sense
}
将是上面的签名。
所以在您的例子中,get_fun
是一个返回函数指针的函数。
关于C++ 类型定义不清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40303315/