C++ 类型定义不清楚
C++ type definition unclear
在下面的 C++ 代码中,double (*) double
是什么意思?
return是什么类型的?
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
参数和 returns double
的函数。一般
X (*)(A, B, C) // any number of args
是一个指向函数的指针,它接受 (A, B, C)
类型的参数和 X
类型的 returns 值,例如
X my_func(A, B, C) {
return X(); // assuming this makes sense
}
就是上面的签名。
所以在你的例子中 get_fun
是一个函数,returns 是一个函数指针。
double (*)(double)
是表示接受 double
并返回 double
.
的函数指针的类型
在下面的 C++ 代码中,double (*) double
是什么意思?
return是什么类型的?
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
参数和 returns double
的函数。一般
X (*)(A, B, C) // any number of args
是一个指向函数的指针,它接受 (A, B, C)
类型的参数和 X
类型的 returns 值,例如
X my_func(A, B, C) {
return X(); // assuming this makes sense
}
就是上面的签名。
所以在你的例子中 get_fun
是一个函数,returns 是一个函数指针。
double (*)(double)
是表示接受 double
并返回 double
.