函數指針是一種非常好的類型。因此,可以編寫一個函數,它的一個參數是函數指針。然後,在(外部)函數使用其函數指針參數時,就間接地調用在調用函數時對應參數指向的函數。
由於指針在不同的情況下可以指向不同的函數,因此允許調用程序確定要從外部函數中調用哪個函數。
在用函數指針類型的參數調用函數時,參數可以只包含函數地址的相應類型的指針。還可以把函數名作為參數,顯示傳送函數。作為參數傳送給另一個函數的函數有時稱為回調函數。
示例:
#includeusing std::cout; using std::endl; //函數聲明 double squared(double); double cubed(double); double sum_array(double array[],int len,double (*pfun) (double)); int main(){ double array[]={1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5}; int len=sizeof array/sizeof array[0]; cout<<"Sum of squares = "<