函数指针

指向函数的指针必须包含指向函数的内存地址。

声明方式:返回类型 (*Type)(参数)。
有三部分组成:指向函数的返回类型;指针名称;指向函数的形参列表。

注:赋给指针的函数必须与定义的指针类型相同。

我们可以使用初始化语句来初始化函数指针,也可以是这个指针指向另一个函数。

函数的指针可以作为参数,指针在不同的情况下指向不同的函数,这样使得具体使用的函数由调用程序决定。

#include <iostream> 

using namespace std;

long sumA(long a,long b);
long sumB(long x,long y);
long sum(long x,long y,long (*pf)(long m,long n));
 
int main(void) 
{
    long (*GetSum)(long a,long b);
    GetSum=sumA;
    cout<<"sumA="<<GetSum(2,3)<<endl; //5
    GetSum=sumB;
    cout<<"sumB="<<GetSum(2,3)<<endl; //10
    cout<<sum(2,3,sumA)<<endl; //5
    cout<<sum(2,3,sumB)<<endl; //10
}  

long sumA(long a,long b)
{
    return a+b;
}

long sumB(long x,long y)
{
    return 2*(x+y);
}

 long sum(long x,long y,long (*pf)(long,long))
 { 
    return pf(x,y);
 }
原文地址:https://www.cnblogs.com/hometown/p/3423810.html