如何指向C ++中的函数

时间:2018-12-15 16:57:14

标签: c++ pointers function-pointers

我想知道如何创建指向功能的地址指针

假设我们具有以下功能

int doublex(int a)
{
    return a*2;
}

我已经知道&用于获取地址。我该如何指向该功能?

3 个答案:

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

这将帮助您:C++ auto keyword. Why is it magic?

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

希望对您有帮助