int getNumber(){
return 5;
}
int main()
{
cout<<getNumber()<<endl;
cout<<getNumber<<endl; //print Function Address
return 0;
}
getNumber就是所謂的function pointer,會指向進入function的位置
建立Function Pointer
回傳型態 (*func_ptr)(參數型態) = fun
例如
#include <iostream>
using namespace std;
int func(char a) {
return int(a);
}
int main()
{
int (*func_ptr)(char) = func; // make function pointer to point func
return 0;
}
建立function pointer並呼叫funcPtr(參數1,參數2...)
#include <iostream>
using namespace std;
int func(char a, char b) {
return int(a)-int(b);
}
int main()
{
int (*funcPtr)(char, char) = func; // make function pointer to point func
cout << func('A','a') <<endl; //-32
cout << funcPtr('a','A') <<endl; //32
return 0;
}
#include <iostream>
#include <string>
using namespace std;
int power2(int n)
{
return n * n;
}
int power3(int n)
{
return n*n*n;
}
//將function當作參數傳入,隨時置換使用的function
void customFunction(string Name, int(*powerF)(int)){
int a = 6;
cout << Name << " , the number is " << powerF(a) << endl;
}
int main(){
int(*FuncPtr)(int) = power2;
customFunction("Bob",FuncPtr);
}
Function Pointer
getNumber
就是所謂的function pointer,會指向進入function的位置建立Function Pointer
回傳型態 (*func_ptr)(參數型態) = fun
例如建立function pointer並呼叫
funcPtr(參數1,參數2...)
Function Pointer存在的目的
要將function當作參數,傳入另一個function時會用到此 假設有一個客戶隨時要取用3次方或2次方,為了個別function建立function會造成程式碼的浪費