21xrx.com
2024-12-22 23:44:33 Sunday
登录
文章检索 我的文章 写文章
C++函数指针
2023-07-05 11:39:37 深夜i     --     --
C++ 函数指针 指针 函数 回调函数

C++ 函数指针是一个指向函数的指针变量,它可以使程序更加灵活,包括了多态性的实现和函数作为参数传递的机制。在 C++ 中,函数名代表函数的入口地址,而函数指针也即是函数名。

如何声明和使用函数指针?

首先,需要定义一个函数类型来声明函数指针。函数类型的声明包括返回值类型和参数类型。例如:


int (*pfunc)(int, int);

这里,pfunc 是一个指向具有两个 int 类型参数和一个 int 类型返回值的函数的指针。

可以通过如下两种方式来调用函数指针:

首先,可以直接将函数名作为一个指针来调用该函数,例如下面的代码:


int f(int a, int b) {

  return a + b;

}

int (*pfunc)(int, int) = f;

int result = (*pfunc)(1, 2);  // result == 3

另一种方式则是对函数指针进行间接调用:


int f(int a, int b) {

  return a + b;

}

int (*pfunc)(int, int) = f;

int result = pfunc(1, 2);  // result == 3

函数指针还有一个应用就是作为函数参数传递。例如下面的代码只定义一个函数,但可以多次调用该函数并得出多种结果。


int add(int a, int b) {

  return a + b;

}

void operate(int x, int y, int (*func)(int,int)) {

  int result = (*func)(x, y);

  cout << "The result is " << result << endl;

}

int main() {

  operate(1, 2, add);  // The result is 3

  operate(3, 4, add);  // The result is 7

  return 0;

}

总之,函数指针是一个非常有用的工具,可以使程序更加灵活,并且可以用于实现多态性和其他非常方便的功能,同时也是面向对象设计如虚函数等的基础。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复