赏勿 发表于 6 天前

C++函数指针详解

概述

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

声明、定义和赋值

首先让我们来区别以下4条声明语句:
int x;      // x是一个int型的变量
int *x;   // x是一个指向int型变量的指针
int *x();   // x是一个返回int型指针的函数
int (*x)(); // x是一个函数指针,输入参数为空,返回类型为int型指针因此,把一个名为fun的函数的声明语句变为函数指针变量pfun的声明语句,只需要将 fun 变为 (*pfun),其他的不变即可(注意:小括号必不可少!)。
double fun(string& str1, string &str2);       // 函数fun的声明
double (*pfun)(string& str1, string &str2);   // 函数指针变量pfun的声明在C/C++中,数组变量的名字是一个指向该数组元素类型的指针常量(存放首元素的地址),类似地,函数的名字也表示一个指向该函数的指针常量(存放该函数入口地址):
int array;      // array是一个指向int的指针常量int *p = array;    // p是一个指向int的指针变量,p = array合法p;            // 等价于arrayvoid test(int a){ cout
页: [1]
查看完整版本: C++函数指针详解