c++函數作為參數傳遞


   把函數作為參數傳遞,常用的方法之一是用typedef定義一個函數指針。

#include<iostream>
using namespace std;

typedef int (*pf)(int,int);  //此種方式最容易理解,定義了一個函數指針類型;函數名就是指針。

int f(pf p,int a,int b)

{
    return p(a,b);
}
int add(int a,int b)
{
    return a+b;
}

int main(){
    cout<<f(add,1,2)<<endl;//3
}

 

還可以這樣:

#include<iostream>
using namespace std;

typedef int FuncType(int,int); //定義了FuncType這種函數數據類型

int f(FuncType p,int a,int b)   //新建了FuncType p變量  這里將p前面加*,照常運行。???

{
return p(a,b);
}
int add(int a,int b)
{
return a+b;
}

int main(){
cout<<f(add,1,2)<<endl;//3
}

還可以這樣:

#include<iostream>
using namespace std;

int f(int add(int,int),int a,int b) //與第二種方式,不同,直接使用實例

{
    return add(a,b);
}
int add(int a,int b)
{
    return a+b;
}

int main(){
    cout<<f(add,1,2)<<endl;//3
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM