创建函数指针数组

Making an array of function pointers

本文关键字:数组 指针 函数 创建      更新时间:2023-10-16

我的问题是:我想编写一个创建数组函数指针的程序。我知道如何制作指向函数的指针,但不知道如何制作它们的数组。

这是我到目前为止尝试的:

double add(double a, double b) { return a + b; }
double sub(double a, double b) { return a - b; }
double mult(double a, double b) { return a * b; }
double div(double a, double b) { return a/b; }
int main() {
    double(*Padd)(double a, double b);
    double(*Psub)(double a, double b);
    double(*Pmult)(double a, double b);
    double(*Pdiv)(double a, double b);
    Padd = &add;
    Psub = ⊂
    Pmult = &mult;
    Pdiv = ÷
} 

在我的代码中,我创建了这些指向数组中函数的指针,例如

double Tpointers[3];
Tpointers[0] = Padd;
Tpointers[1] = Psub;
Tpointers[2] = Pmult;
Tpointers[3] = Pdiv;

我该怎么做?

只需声明一个新类型"Tpointers",它表示指向一个函数的指针,该函数给出两个双精度并返回一个双精度。

在代码中,您可以创建函数数组。

#include<iostream>
// The function pointer type!
typedef double (*Tpointers)(double, double);
double add(double a, double b) { return a + b; }
double sub(double a, double b) { return a - b; }
double mult(double a, double b) { return a * b; }
double div(double a, double b) { return a / b; }
int main() {
  // A functions pointers array .
  Tpointers fun_array[4];
  // Assign the values 
  fun_array[0] = &add;
  fun_array[1] = &sub;
  fun_array[2] = &mult;
  fun_array[3] = &div;
  // A little test
  std::cout << fun_array[2](3, 3) << " " << fun_array[3](3,3) << " " << fun_array[1](3,3)
        << std::endl;
  return 0;
}

在 c++ 中,您还可以创建一个 std::向量函数指针...或来自"Tpointers"的 std 库的任何容器。