找回密码
 立即注册
首页 资源区 代码 C++函数指针详解

C++函数指针详解

赏勿 2025-6-4 19:43:16
概述

本文详细介绍了C/C++中的普通函数和类的成员函数的指针。结合C++代码示例讲解了函数指针作为其他函数的输入、返回值以及typedef如何提高代码可读性的实用技巧。对于类的成员函数(方法)指针,则分为静态和非静态两种情况。最后总结了普通函数、类的非静态成员函数、类的静态成员函数的声明、赋值和定义的C++语法以供查阅。
普通函数的指针

声明、定义和赋值

首先让我们来区别以下4条声明语句:
  1. int x;      // x是一个int型的变量
  2. int *x;     // x是一个指向int型变量的指针
  3. int *x();   // x是一个返回int型指针的函数
  4. int (*x)(); // x是一个函数指针,输入参数为空,返回类型为int型指针
复制代码
因此,把一个名为fun的函数的声明语句变为函数指针变量pfun的声明语句,只需要将 fun 变为 (*pfun),其他的不变即可(注意:小括号必不可少!)。
  1. double fun(string& str1, string &str2);       // 函数fun的声明
  2. double (*pfun)(string& str1, string &str2);   // 函数指针变量pfun的声明
复制代码
在C/C++中,数组变量的名字是一个指向该数组元素类型的指针常量(存放首元素的地址),类似地,函数的名字也表示一个指向该函数的指针常量(存放该函数入口地址):
[code]int array[5];      // array是一个指向int的指针常量int *p = array;    // p是一个指向int的指针变量,p = array合法p[3];              // 等价于array[3]void test(int a){ cout
您需要登录后才可以回帖 登录 | 立即注册