答案 0 :(得分:6)
它是一个指向函数类型的指针,可用于所有不带参数并返回void
的函数。
例如:
void function_1() {}
void function_2() {}
void(*func_1_ptr)() = function_1; // or = &function_1;
void(*func_2_ptr)() = function_2; // or = &function_2;
现在func_1_ptr
持有指向函数function_1
的指针,而func_2_ptr
持有指向function_2
的指针。
您可以通过using
声明使类型更直观。
using FunPtrType = void(*)();
现在您可以写
FunPtrType func_1_ptr = function_1; // or = &function_1;
//Type identifier function
FunPtrType func_2_ptr = function_2; // or = &function_2;
答案 1 :(得分:2)
这是指向函数的指针的类型,该函数不带任何参数并返回void
。
答案 2 :(得分:0)
在开闭括号(*)
之间的星号表示函数指针的声明。此参数的左右分别代表它将指向的函数的返回类型和函数参数。
所以基本上就您而言:
void printHello()
{
std::cout<<"Hello";
}
void(*fPtr)() = printHello;
在C ++中,您可以使用更好的OOP方法执行相同操作:
std::function<void()> fPtr = printHello;
fPtr();
您将必须包含functional
标头