我想知道如何创建指向功能的地址的指针。
假设我们具有以下功能:
int doublex(int a)
{
return a*2;
}
我已经知道&
用于获取地址。我该如何指向该功能?
答案 0 :(得分:3)
如前所述,您可以使用&
运算符获取地址。那么最简单的方法是为它分配一个auto
变量来存储它,现在您可以像使用函数本身一样使用变量了。
int doubleNumber(int x)
{
return x*2;
}
int main()
{
auto func = &doubleNumber;
std::cout << func(3);
}
查看实时示例 here
答案 1 :(得分:2)
只需:
auto function_pointer = &doublex;
自动类型是什么?
auto关键字指定所声明的变量的类型将从其初始值设定项中自动扣除。对于函数,如果它们的返回类型为auto,则它将在运行时由返回类型expression求值。 Source here
答案 2 :(得分:0)
您可以执行类似的操作,并存储对兼容函数的引用,或者将您的函数作为参数传递给另一个函数。
typedef int (*my_function_type)(int a);
int double_number(int a)
{
return a*2;
}
my_function_type my_function_pointer = double_number;
int transform_number(int target, my_function_type transform_function) {
return transform_function(target);
}
希望对您有帮助